从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的可能。