dedeCMS V5_7 SP2后台代码执行漏洞复现

漏洞描述:

DedeCMS V5.7 SP2版本中tpl.php存在代码执行漏洞,攻击者可利用该漏洞在增加新的标签中上传木马,获取webshell

安装dedecms.

打开已知存在漏洞的php页面 tpl.php

查看源码

dedeCMS V5_7 SP2后台代码执行漏洞复现

1.定义了一个savetagfile的函数,判断参数”action”是否等于savetagfile,如果等于就进行下一步

2.csrf检验函数,需要加上token来绕过限制

3.正则表达式匹配,判断filename参数是否匹配正则表达式的条件,不匹配就不能进行修改操作。

4.$content里面的内容写入到相对路径里,由于这块代码只对写入的文件名做了简单的过滤和csrf防护,导致我们可以任意写入代码。

通过对上面的代码分析,发现有csrf检测防御,因此需要获得token来进行绕过。

浏览tpl.php代码,发现action的参数有很多,比如del,edit,upload等等,但只有传入upload的时候页面才会获取token,而其他的都没有获取token,所以只能通过action=upload来获取token。用浏览器访问该页面,如下图:

dedeCMS V5_7 SP2后台代码执行漏洞复现

dedeCMS V5_7 SP2后台代码执行漏洞复现

鼠标右键,查看源码

dedeCMS V5_7 SP2后台代码执行漏洞复现

通过浏览tpl.php代码,发现要上传的参数有:action,token,filename,content,构造payload

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

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

Payload:

[http://127.0.0.1/DedeCMS-V5.7-UTF8-SP2/uploads/dede/tpl.php?action=savetagfile&token=b77930a0c5a12da73402e5365c2c4e23&filename=a.lib.php&content=<php?%[email protected](KaTeX parse error: Expected 'EOF', got '&' at position 97: …ion=savetagfile&̲token=b77930a0c…_POST[%27cmd%27]);?%3E)

dedeCMS V5_7 SP2后台代码执行漏洞复现

发现payload成功

菜刀连接

dedeCMS V5_7 SP2后台代码执行漏洞复现