Level 0~8
Level 0
flag 直接给出了。

Level 1
代码会执行通过 POST 方式获取到的 a 里面的命令,那我们直接改让 a=echo $flag 即可。

Level 2
代码含义,GET 到 action = r 的话,会随机一次函数,GET action = submit 也会随即一次函数,最后是随机到了 eval 函数,然后直接 POST content = 'echo $flag;',即可。

Level 3
直接传参 a=cat /flag。

Level 4
提示里说:“;(命令分隔符): 无论前一个命令 cmd_1 是否成功,都会执行下一个命令 cmd_2。例: echo "Hello" ; echo "World"”
那我们只要让他 ping 完之后在执行我们的 flag 命令即可。

Level 5
按照提示绕过 preg_match 的检查。
?cat /f""gag

Level 6
刚才的题目讲过,可以用 ? 来匹配单个字符,来匹配 \bin\cat\flag 则为 \???\?a?\??a?。

Level 7
提示里给了如何跳过空格过滤,用 $IFS,flag 过了和 Level 5 一样。
?cmd=cat$IFS/f""lag

Level 8
利用 ;,来绕开后面的禁止输出。
cmd=cat /flag;
