Discuz uc.key泄露导致代码注入漏洞 DiscuzX3.4最新版修复方法
更新时间:2018-04-12•点击: • 技术分享
标题: Discuz uc.key泄露导致代码注入漏洞
简介:
在Discuz中,uc_key是UC客户端与服务端通信的通信密钥,discuz中的/api/uc.php存在代码写入漏洞,导致黑客可写入恶意代码获取uckey,最终进入网站后台,造成数据泄漏。您也可以登录官方网站更新到最新版本解决。
解决方案:
方案一:使用云盾自研补丁进行一键修复; 方案二:更新该软件到官方最新版本或寻求该软件提供商的帮助。 【注意:该补丁为云盾自研代码修复方案,云盾会根据您当前代码是否符合云盾自研的修复模式进行检测,如果您自行采取了底层/框架统一修复、或者使用了其他的修复方案,可能会导致您虽然已经修复了该漏洞,云
盾依然报告存在漏洞,遇到该情况可选择忽略该漏洞提示】
网上许多修复的方法,其实Discuz官方在新版X3.4中已经做过了修复,但是阿里云依然提示有漏洞需要修复。
通过阿里云安骑士修复后与源文件对比后发现有两处修改地方,找到api/uc.php并打开:
1.找到在39行的地方
通过阿里云安骑士修复后与源文件对比后发现有两处修改地方,找到api/uc.php并打开:
1.找到在39行的地方
if(!defined('IN_UC')) {
require_once '../source/class/class_core.php';
$discuz = C::app();
$discuz->init();
... ...
修改为【红色为修改的地方】
if(!defined('IN_UC')) {
require_once '../source/class/class_core.php'; if (method_exists("C", "app")) { $discuz = C::app(); $discuz->init(); }
$discuz = C::app();
$discuz->init();
... ...
2.找到273行的地方
function updateapps($get, $post) {
global $_G;
if(!API_UPDATEAPPS) {
return API_RETURN_FORBIDDEN;
}
... ...
修改为【红色为修改的地方】
function updateapps($get, $post) { if($post['UC_API']) { $post['UC_API'] = addslashes($post['UC_API']); }
global $_G;
if(!API_UPDATEAPPS) {
return API_RETURN_FORBIDDEN;
}
... ...
修改后上传覆盖,然后回到安骑士点击验证即可修复完毕。
-
有哪些虚拟主机管理系统 八大免费
2017-09-19 16:30:26•125 次
-
织梦dede内容模型定义的自定义字段
2017-09-17 09:33:00•113 次
-
调用织梦DedeCMS上级栏目名称及链接
2017-09-16 12:31:47•70 次
-
在 wdcp v3.2 面板上,上传SSL证书,实
2017-09-16 11:34:46•90 次
-
阿里云ECS如何添加安全组规则
2017-09-16 11:34:37•158 次