记一次CSRF的getshell利用

首页 / 网络安全 / 正文

从XSS到CSRF

授权目标站使用的织梦CMS,因为是门户网站没有什么利用的点,授权方给了后台密码,进去后利用织梦已知漏洞拿下多个shell,都是代码执行文件上传之类的,不过都是从后台进行突破,没有后台账户的话相当于这次就没什么收获。

前台唯一的一个交互点为用户留言,大概流程为:用户留言-管理员回复-审核发布

第一时间想到的是看看有没有存储型的XSS,试了半天发现是可以插入HTML结构,但是一些危险的标签都被百度云的CDN WAF拦截掉了,然后就开始试验各种标签看看有没有能绕过waf检测的,跟它耗了一阵后突然想到既然我绕不过去它为什么不去脱掉它的waf呢(恍然大明白)?
a1.png


说干就干,找到了它的真实IP后写进了hosts文件,然后直接访问源站就没有waf了,接下来正准备上XSS的时候有点蒙,自己技术太菜尝试了各种手段后无法有效使用,要么关键词被替换要么就是中间给我加了空格,时间也比较有限不能一直在这死磕就想到试下csrf,A标签是可用的,因为需要管理员审核,所以有几率会点我们植入的超链接,配合织梦的代码执行漏洞应该可以进行webshell的写入。

a2.png

利用条件:知道后台路径,管理员点击插入的超链接

本来打算直接写入payload点击后getshell,这里的超链接前面自动匹配了前缀为:http://xxx.xx/aaa/插入链接
想到可以利用../去掉/aaa目录

利用如下

<a href="/后台/stepselect_main.php?action=addenum_save&ename=233&issign=1&egroup=;phpinfo();$"></a>

**写入后点击生成的webshell中有乱码,无法有效使用,考虑到get传输中可能有删减字符,想url编码后使用,然后发现编码后访问404,原因是字母解码了但是像?这类字符没有解码,又进行了字符编码和使用原符号进行测试
成功插入且可以getshell**

a3.png

webshell路径:url/data/enums/;phpinfo();$.php
无标签