织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>杂项技术>Web>

DeDeCMS 漏洞修改汇总

jackyhwei 发布于 2018-11-26 11:23 点击:次 
1、标题: dedecms模版SQL注入漏洞 披露时间: 1970-01-01 08:00:00 简介: dedecms的/member/soft_add.php中,对输入模板参数$servermsg1未进行严格过滤,导致攻击者可构造模版闭合标签,实现模版注入进行GETSHEL
TAG: DedeCMS  漏洞  

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

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

方法:

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

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

替换为:

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

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后台文件任意上传漏洞

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漏洞

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漏洞

dedecms的文章发表表单中泄漏了用于防御CSRF的核心cookie,同时在其他核心支付系统也使用了同样的cookie进行验证,黑客可利用泄漏的cookie通过后台验证,进行后台注入。

解决方法:

打开memberincinc_archives_functions.php文件,找到239行,将 1 echo "<input type="hidden" name="dede_fieldshash" value="".md5($dede_addonfields.$cfg_cookie_encode)."" />";

替换为: 1 echo "<input type="hidden" name="dede_fieldshash" value="".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 `dede_guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");  
    ShowMsg("成功更改或回复一条留言。", $GUEST_BOOK_POS);  
    exit();  
修复:
$msg = addslashes(HtmlReplace($msg, -1));  
    $dsql->ExecuteNoneQuery("UPDATE `dede_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}')"); (aliyun)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201811/17549.html]
本文出处:aliyun 作者:aliyun 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容