一打开阿里云后台,发现了12个加急处理的漏洞,还没来得及了解阿里云的漏洞检测原理,直接开始着手修复漏洞
searching on baidu... ... : )
1.dedecms支付模块注入漏洞
描述:
DEDECMS支付插件存在SQL注入漏洞,此漏洞存在于/include/payment/alipay.php文件中,对输入参数$_GET['out_trade_no']未进行严格过滤。
解决:找到 /include/payment/alipay.php 修改
$order_sn = trim($_GET['out_trade_no']);
修改为
$order_sn = trim(addslashes($_GET['out_trade_no']));
----------------------------------------------------
2.dedecms SESSION变量覆盖导致sql注入
描述:
dedecms的/plus/advancedsearch.php中,直接从$_SESSION[$sqlhash]获取值作为$query带入SQL查询,这个漏洞的利用前提是session.auto_start = 1即开始了自动SESSION会话,云盾团队在dedemcs的变量注册入口进行了通用统一防御,禁止SESSION变量的传入。
解决:找到 /include/common.inc.php 修改
if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#',$svar) )
改为
if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#',$svar) )
----------------------------------------------------------
3.dedecms 上传漏洞
描述:
dedecms过滤逻辑不严导致上传漏洞。
解决:找到 /include/uploadsafe.inc.php 修改
第一处:
${$_key.'_size'} = @filesize($$_key);
改为
${$_key.’_size’} = @filesize($$_key);
$imtypes = array("image/pjpeg", "image/jpeg", "image/gif", "image/png", "image/xpng", "image/wbmp", "image/bmp");
if(in_array(strtolower(trim(${$_key.’_type’})), $imtypes)) {
$image_dd = @getimagesize($$_key);
if($image_dd == false){
continue;
}
if (!is_array($image_dd)){
exit('Upload filetype not allow !');
}
}
第二处:在上面修改的后面还有一个$image_dd没有判断
$image_dd = @getimagesize($$_key);
后面添加
if($image_dd == false){
continue;
}
解决:找到/include/dialog/select_soft_post.php 修改
在 fullfilename = $cfg_basedir.$activepath.'/'.$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();
}
-----------------------------------------------------------
4. dedecms cookies 泄漏导致SQL漏洞
描述:
dedecms的文章发表表单中泄漏了用于防御CSRF的核心cookie,同时在其他核心支付系统也使用了同样的cookie进行验证,黑客可利用泄漏的cookie通过后台验证,进行后台注入。
解决:
第一处:打开 \member\inc\inc_archives_functions.php 找到
echo "";
修改为:
echo "";
第二处: 打开 \member\article_add.php 找到
if (empty($dede_fieldshash) || $dede_fieldshash != md5($dede_addonfields.$cfg_cookie_encode))
修改为:
if (empty($dede_fieldshash) || ($dede_fieldshash != md5($dede_addonfields.$cfg_cookie_encode) && $dede_fieldshash != md5($dede_addonfields . '
anythingelse' . $cfg_cookie_encode)))
--------------------------------------------------
5.留言板注入漏洞
描述:
dedecms留言板注入漏洞。
解决:
找到 /plus/guestbook/edit.inc.php
$msg = HtmlReplace($msg, -1);
$dsql->ExecuteNoneQuery("UPDATE `#@__guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");
ShowMsg("成功更改或回复一条留言!", $GUEST_BOOK_POS);
exit();
改为
$msg = addcslashes(HtmlReplace($msg, -1));
$dsql->ExecuteNoneQuery("UPDATE `#@__guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");
ShowMsg("成功更改或回复一条留言!", $GUEST_BOOK_POS);
exit();
-----------------------------------------------------
6.dedecms后台文件任意上传漏洞
描述:
dedecms早期版本后台存在大量的富文本编辑器,该控件提供了一些文件上传接口,同时dedecms对上传文件的后缀类型未进行严格的限制,这导致了黑客可以上传WEBSHELL,获取网站后台权限。
解决:
找到 /dede/media_add.php
$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;
----------------------------------------------------------------------
7. dedecms 模版SQL注入漏洞
描述:
dedecms的/member/soft_add.php中,对输入模板参数$servermsg1未进行严格过滤,导致攻击者可构造模版闭合标签,实现模版注入进行GETSHELL。
解决:
找到 /member/soft_add.php
$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";
}
------------------------------------------------------------------------
8.dedecms v5.7注册用户任意文件删除漏洞
描述:
dedecms前台任意文件删除(需要会员中心),发表文章处,对于编辑文章的时候图片参数处理不当,导致了任意文件删除
解决:
找到 /member/inc/archives_check_edit.php
$litpic =$oldlitpic;
修改为:
$litpic =$oldlitpic;
if (strpos( $litpic, '..') !== false || strpos( $litpic, $cfg_user_dir."/{$userid}/" ) === false) exit('not allowed path!');
-----------------------------------------------------------
9.dedecms 会员中心注入漏洞
描述:
dedecms会员中心注入漏洞。
解决:
找到 /member/pm.php
$row = $dsql->GetOne("SELECT * FROM `#@__member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");
改为
$id = intval($id);
$row = $dsql->GetOne("SELECT * FROM `#@__member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");
----------------------------------------------------------
10. Sql注入
描述:
dedecms的/dedecms/member/album_add.php文件中,对输入参数mtypesid未进行int整型转义,导致SQL注入的发生。
解决:
找到 /member/album_add.php
$description = HtmlReplace($description, -1);
//保存到主表
$inQuery = "INSERT INTO `#@__archives`(id,typeid,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,
color,writer,source,litpic,pubdate,senddate,mid,description,keywords,mtype)
VALUES ('$arcID','$typeid','$sortrank','$flag','$ismake','$channelid','$arcrank','0','$money','$title','$shorttitle',
'$color','$writer','$source','$litpic','$pubdate','$senddate','$mid','$description','$keywords','$mtypesid'); ";
改为:
$description = addcslashes(HtmlReplace($description, -1));
$mtypesid = intval($mtypesid);
//保存到主表
$inQuery = "INSERT INTO `#@__archives`(id,typeid,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,
color,writer,source,litpic,pubdate,senddate,mid,description,keywords,mtype)
VALUES ('$arcID','$typeid','$sortrank','$flag','$ismake','$channelid','$arcrank','0','$money','$title','$shorttitle',
'$color','$writer','$source','$litpic','$pubdate','$senddate','$mid','$description','$keywords','$mtypesid'); ";
----------------------------------------------------------
11. Sql注入
位置:/member/mtypes.php
$query = "UPDATE `#@__mtypes` SET mtypename='$name' WHERE mtypeid='$id' AND mid='$cfg_ml->M_ID'";
改为:
$id = intval($id);
$query = "UPDATE `#@__mtypes` SET mtypename='$name' WHERE mtypeid='$id' AND mid='$cfg_ml->M_ID'";
---------------------------------------------------
searching end
以上内容均来自网络,如有侵权请联系我