dedecms 5.7通杀 SSRF+XSS注入漏洞

         

         从dedecms官网可以看出dedecms发布的安全漏洞补丁,更新日期为V5.7SP2正式版
 
(2017-04-05),下载最新版的程序到我们本地,然后人工进行详细的网站安全审计,对其
 
详细的安全检测发现dedecms 5.7版本存在高危漏洞,其包含了几个跨站请求伪造漏洞,一
 
个xss跨站漏洞,由于时间关系,只看了其中的管理目录dede/tpl.php以及
 
plus/carbuyaction.php这两个文件之间写的代码与逻辑安全问题。
 

 
下面开始我们的网站安全代码的审计,下载V5.7 SP2版本,考虑到只需要对一些改动的代
 
码进行分析,就可以快速找到漏洞,我们只下载这个Beyond Compare来对比程序代码之间
 
的不同之处。Sine安全公司是一家专注于:服务器安全、网站安全、网站安全检测、网站漏

洞修复,渗透测试,安全服务于一体的网络安全服务提供商。
 
 
首先发现是XSS跨站漏洞:
 
查看plus/carbuyaction.php的代码,通过代码之间的对比发现,补丁文件在188行上下对
 
$address $des $postname $email四个声明变量中同时嵌入了一个RemoveXSS函数,从函数
 
名可看出显然其是一个过滤xss跨站攻击的函数。如图1:
 
 
 
在全部程序文件里进行搜索,发现在 /include/helpers/filter.helper.php文件的 65行
 
处有定义,通过dedecms官方的注释部分和相关代码,我们可以看到的是这个函数确实一个
 
过滤xss攻击的函数。在未过滤的情况下,$address直接带入了sql语句,进入了数据库。
 
而又由于相关页面在读取订单输出到页面时未经过滤,造成了xss。
 
 
CSRF跨站请求伪造漏洞
 
漏洞存在于/dede/tpl.php这个文件,并没有对管理员的操作进行安全验证token,以及GET 
 
POST请求方式上不去分辨,导致以GET请求方式访问,可直接对模板文件进行控制,补丁文
 
件对照:补丁文件在911行和251行附近增加了相关的token验证。没有验证,我们就可以删
 
除任意templets文件夹下的文件,也可以在该文件夹及其子文件夹下创建任意模板文件,
 
但是文件必须都是htm格式的才能删除。Sine安全公司是一家专注于:服务器安全、网站安全、

网站安全检测、网站漏洞修复,渗透测试,安全服务于一体的网络安全服务提供商。

 


 
如何利用dedecms漏洞呢?
 
织梦XSS跨站漏洞:
 
        漏洞条件:商品在出售,会员注册并能登陆
 
        测试:登陆账号,打开商品页,例如
 
http://sinesafe.com/dedecms/plus/view.php?aid=8,然后加入购物车,下单,货到付款
 
。地址填 上海<script>alert(sine)</script> ,当管理员点开商品交易的详情页时触发
        漏洞展现如下图:
 
 
 
织梦CSRF漏洞 EXP如下:
EXP1:http://sinesafe.com/dedecms/dede/tpl.php?
 
action=saveedit&acdir=default&filename=aaaaa.htm&content=<?php  echo sine; ?
 
>&B1=++%B1%A3+%B4%E6++
 
也可以URL缩短有http://url.cn/sinesafe,再去友情链接图片处添加链接,如
 
http://sinesafe.com/dedecms/plus/flink_add.php,当管理员审核友情链接时就会触发
 
漏洞。
 
织梦漏洞复现如下图:
 

 
另外,如果服务器的环境是IIS6的话,模板利用CSRF创建一个sine.php;.htm文件即可
 
getshell拿权限,如果后台开启了动态浏览,也有利用CSRF来getshell的可能。
 
分享: