点开链接,可以看到网页上仅有一行字:
不过可以从形式上看出,是告诉我们有一个变量ip
所以进行赋值尝试:
可以猜到程序极有可能是把我们上传的值作为一个ip地址,进行ping 命令
尝试在赋值语句后添加新的语句来查看目录:
发现可以,同时知道了有两个文件:index.php和flag.php
容易猜到flag 应该在flag.php中,那么尝试用cat命令查看:
看来程序中有过滤操作,这里应该是提示把空格过滤了,但过滤肯定不止空格
所以先想办法看一下index.php的源码
空格过滤处理
1、${IFS}替换
2、$IFS$1替换
3、${IFS替换
4、%20替换
5、<和<>重定向符替换
6、%09替换
引自https://blog.csdn.net/qq_46184013/article/details/107061110
下略
接下来就一个个进行尝试:
${IFS}:
猜测把某些符号过滤了
$IFS$1:
这时候成功了,那么都完我们可以发现
空格,bash,flag,以及{}之类的符号都被过滤了
然后我就想是否可以通过base64的方式破解,直接上payload:
?ip=1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
所以flag为flag{5f694887-ca18-4327-a943-2e3ab5ffa5a9}