dedecms v5.7(build 20150618)的12个漏洞

一打开阿里云后台,发现了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 "<input type=\"hidden\" name=\"dede_fieldshash\" value=\"".md5($dede_addonfields.$cfg_cookie_encode)."\" />";

修改为:

echo "<input type=\"hidden\" name=\"dede_fieldshash\" value=\"".md5($dede_addonfields."anythingelse".$cfg_cookie_encode)."\" />";

第二处: 打开 \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

以上内容均来自网络,如有侵权请联系我

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值