本题考察的内容是rce绕过,本事过滤的东西不算多也算是比较好绕过
基础看到这种先ping一下试试看
输入127.0.0.1看看有啥东西
有回显说明可以接着往下做
借用RCE漏洞详解及绕过总结(全面)-CSDN博客这个大佬整理的rce绕过
; | A;B | 无论真假,A与B都执行 |
& | A&B | 无论真假,A与B都执行 |
&& | A&&B | A为真时才执行B,否则只执行A |
| | A|B | 显示B的执行结果 |
|| | A||B | A为假时才执行B,否则只执行A |
这时已知127.0.0.1为真就可选取以上123种进行尝试2 3发现都无回显只有1有回显
第一次输入127.0.0.1;cat flag.php试试看
给予回显说fxck your space!
这就说明大概是存在过滤,需要去筛选
观察我们写的代码大概有可能空格就被过滤了,这时候需要找空格的替代品
%20(space)、%09(tab)、$IFS$9、${IFS}$9、 {IFS}、IFS这一些都是
我用了$IFS$9做替换给的提示说
fxck your flag!
说明flag被过滤了
我们看看index.php中有什么东西
回显后查看源代码有以下内容,主要是告诉你哪些被过滤了
也就印证了以上我们的猜想
最后就只需要将flag用别的方式代替即可
我们常用的方法就是拼接
比如a=fl;b=ag这种
但是一般我们都将后面的内容先写出来也就是b=ag;a=flag这样做的目的是为了绕过字符串匹配
最后的组成就是127.0.0.1;b=ag;a=fl;cat$IFS$9$a$b.php