http://80-ad91eeef-e4d9-4793-87d1-edcbd34a1c97.challenge.ctfplus.cn//?cmd=/???/?a? /??a?该题考察了waf绕过
1.根据代码我们能知道?和 /还有字母a没有被waf过滤,所以要通过这三个没有被过滤的字符来构造payload过滤。
2.首先我们要了解一下bin目录,在linux环境下,bin目录里存放基础的二进制命令、系统开机、维护、基础操作需要的核心命令如(cat、ls、echo、sh等)都在这个目录下,如果要执行cat flag这类读取flag的操作,就需要调用/bin/cat这个可执行文件,所以这里我们要改造的命令就是cat /bin/cat /flag.
3.因为代码里进行了waf过滤,所以我们应该构造如下的payload:/?cmd=/???/?a?%20/??a?绕过过滤执行命令读取flag。
总结:
考察了对命令的模糊执行,通配符的使用,以及bin目录读取等知识点。