DeDeCMS 漏洞修改汇总

1、标题: dedecms模版SQL注入漏洞
披露时间: 1970-01-01 08:00:00
简介:
dedecms的/member/soft_add.php中,对输入模板参数$servermsg1未进行严格过滤,导致攻击者可构造模版闭合标签,实现模版注入进行GETSHELL。
解决方案:
 
     

方案一:使用云盾自研补丁进行一键修复;方案二:更新该软件到官方最新版本或寻求该软件提供商的帮助。【注意:该补丁为云盾自研代码修复方案,云盾会根据您当前代码是否符合云盾自研的修复模式进行检测,如果您自行采取了底层/框架统一修复、或者使用了其他的修复方案,可能会导致您虽然已经修复了该漏洞,云盾依然报告存在漏洞,遇到该情况可选择忽略该漏洞提示】修改的

方法:

解决办法:打开根目录下/member/soft_add.php(在154行),

$urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link}\r\n";

替换为:

if (preg_match("#}(.*?){/dede:link}{dede:#sim", $servermsg1) != 1) {   $urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link}\r\n";}

2、标题: dedecms支付模块注入漏洞   

简介:
DEDECMS支付插件存在SQL注入漏洞,此漏洞存在于/include/payment/alipay.php文件中,对输入参数$_GET['out_trade_no']未进行严格过滤。

文件在include/payment/下面include/payment/alipay.php,搜索(大概在137行的样子)

      $order_sn = trim($_GET['out_trade_no']);
      修改为

      $order_sn = trim(addslashes($_GET['out_trade_no']));

3、标题: dedecms后台文件任意上传漏洞
披露时间: 1970-01-01 08:00:00
简介:
dedecms早期版本后台存在大量的富文本编辑器,该控件提供了一些文件上传接口,同时dedecms对上传文件的后缀类型未进行严格的限制,这导致了黑客可以上传WEBSHELL,获取网站后台权限。


修复方法:
打开/dede/media_add.php(dede是你的后台文件夹,请自行修改)
搜索(大概在69行左右):
$fullfilename = $cfg_basedir.$filename; 
在上面增加一句:
/***********修改文件开始*************/
            if (preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) { 
                ShowMsg("你指定的文件名被系统禁止!",'javascript:;'); exit(); }
                 $fullfilename = $cfg_basedir.$filename;

            /***********修改文件结束*************/

4、标题: dedecms cookies泄漏导致SQL漏洞
披露时间: 1970-01-01 08:00:00
简介:
dedecms的文章发表表单中泄漏了用于防御CSRF的核心cookie,同时在其他核心支付系统也使用了同样的cookie进行验证,黑客可利用泄漏的cookie通过后台验证,进行后台注入。


搜索代码:if (empty($dede_fieldshash) || $dede_fieldshash != md5($dede_addonfields.$cfg_cookie_encode))    (大概在83行)

修改为:

if (empty($dede_fieldshash) || ( $dede_fieldshash != md5($dede_addonfields . $cfg_cookie_encode) && $dede_fieldshash != md5($dede_addonfields . 'anythingelse' . $cfg_cookie_encode)))

5、标题: dedecms cookies泄漏导致SQL漏洞
披露时间: 1970-01-01 08:00:00
简介:
dedecms的文章发表表单中泄漏了用于防御CSRF的核心cookie,同时在其他核心支付系统也使用了同样的cookie进行验证,黑客可利用泄漏的cookie通过后台验证,进行后台注入。


解决方法:

打开\member\inc\inc_archives_functions.php文件,找到239行,将

1 echo ".md5($dede_addonfields.$cfg_cookie_encode)."\" />";

替换为:

1 echo ".md5($dede_addonfields."anythingelse".$cfg_cookie_encode)."\" />";

修改文件前请做好文件备份。将新的inc_archives_functions.php文件上传替换阿里云服务器上即可解决此问题。

6、

漏洞名称:dedecms 上传漏洞

漏洞文件:include/uploadsafe.inc.php

漏洞描述:dedecms过滤逻辑不严导致上传漏洞。

解决方法:

1、打开include/uploadsafe.inc.php文件,找到第8行或者搜索

1 $cfg_not_allowall = "php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml";

替换为:

查看源代码
打印 帮助
1 $cfg_not_allowall = "php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml|htm|html";

2、找到第52行或者搜索

1 $image_dd = @getimagesize($$_key);

在其下面添加:

1 if($image_dd == false){ continue; }

修改文件前请做好文件备份,将新的uploadsafe.inc.php文件上传替换阿里云服务器上即可解决此问题

6)

简介:
dedecms的/dedecms/member/album_add.php文件中,对输入参数mtypesid未进行int整型转义,导致SQL注入的发生。

修复方法:
打开dedecms/member/album_add.php文件,查找以下代码(大约220行左右)

$description = HtmlReplace($description, -1);//2011.06.30 增加html过滤 (by:织梦的鱼)

将上面的代码替换为:

$description = HtmlReplace($description, -1);//2011.06.30 增加html过滤 (by:织梦的鱼)
$mtypesid = intval($mtypesid);
7、 漏洞名称:dedecms SESSION变量覆盖导致SQL注入

漏洞描述:dedecms的/plus/advancedsearch.php中,直接从SESSION[SESSION[sqlhash]获取值作为$query带入SQL查询,这个漏洞的利用前提是session.auto_start = 1即开始了自动SESSION会话,云盾团队在dedemcs的变量注册入口进行了通用统一防御,禁止SESSION变量的传入

dedecms SESSION变量覆盖导致SQL注入common.inc.php的解决方法

1、搜索如下代码(68行):

if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#',$svar) )

2、替换 68 行代码,替换代码如下:

if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#',$svar) )

修改前请备份好文件,将新的/include/common.inc.php 文件上传替换阿里云服务器上的即可解决此问题。

8、

简介:
dedecms会员中心注入漏洞。
解决方案:
 
     

方案一:使用云盾自研补丁进行一键修复;方案二:更新该软件到官方最新版本或寻求该软件提供商的帮助

【注意:该补丁为云盾自研代码修复方案,云盾会根据您当前代码是否符合云盾自研的修复模式进行检测,如果您自行采取了底层/框架统一修复、或者使用了其他的修复方案,可能会导致您虽然已经修复了该漏洞,云盾依然报告存在漏洞,遇到该情况可选择忽略该漏洞提示】

修复方法:

member/mtypes.php

在$name = HtmlReplace($name);下面添加

/* 对$id进行规范化处理 */        $id = intval($id);      /* */

9,/plus/guestbook/edit.inc.php  dedecms注入漏洞,其实就是留言版注入漏洞
没有对$msg过滤,导致可以任意注入,找到
$msg = HtmlReplace($msg, -1);  
    $dsql->ExecuteNoneQuery("UPDATE `#@__guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");  
    ShowMsg("成功更改或回复一条留言!", $GUEST_BOOK_POS);  
    exit();  
修复:
$msg = addslashes(HtmlReplace($msg, -1));  
    $dsql->ExecuteNoneQuery("UPDATE `#@__guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");  
    ShowMsg("成功更改或回复一条留言!", $GUEST_BOOK_POS);  
    exit();  
加入: addslashes进行过滤

10.

 /member/pm.php文件,搜索(大概在65行左右)

$row = $dsql->GetOne("SELECT * FROM `dede_member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");

修改为

$id = intval($id); //将$id 转换为int类型

$row = $dsql->GetOne("SELECT * FROM `dede_member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");







你可能感兴趣的:(DedeCms)