打开靶机开始操作
然后我们先知道一些知识点:下面这些是常用的
|这个管道符 | 也就是上一条的命令的输出结果作为下一条命令的输入 |
; | 这个是跟sql的堆叠注入是一样的 |
|| | || 当前面的执行出错时(为假)执行后面的 |
& | 将任务置于后台执行 |
&& | 跟逻辑运算是一样的 |
过滤空格的方法有很多,我们一起经常使用%0a和%09以及使用注释符/**/以及比较符<>等等来进行绕过,在liunx中我们可以使用变量也就是我们下面的主角{IFS}这个来进行绕过
打开靶机进行操作:
然后我们下面开始加一个|ls来看看,我们来看看有哪些文件
我们直接去看看flag可以读取不???
这点发现了过滤了空格,也就是说我们要进行绕过,然后我们使用%0a和%09等等都没有进行绕过
我们就请出我们的主角{IFS}=$IFS$这2个是相同的效果
有时候过滤了其中的一个我们可以换一个来进行替代。
有提示我们的flag所以知道了flag被过滤了,然后我们可以直接像以前一样进行字符串拼接。
在sql注入的时候我们也是使用了字符串拼接的处理,我记得是在预编译的时候在堆叠注入的那篇博客中,然后我们进行字符串拼接操作,看能不能绕过flag这个过滤。
发现可以进行绕过然后在页面源码得到了我们想要的答案。我前面一直在首页看我的flag,弄了半天都没有找到,真的是服了我自己了。
然后我们可以看看index.php来看这个题是过滤了哪些东西,进行总结,也了解了解。
我们来看源码直接
分析一下过滤哪些东西,在源码中可以明确的看出,会直接匹配flag这个,然后过滤了一些通配符
如果使用{IFS}不能进行读取的话,在后面加一个数字在来看看可以不,有些情况是要这样的
先开始我读取index.php这个文件就不能进行读取,我还以为语法出现了错误。不行的时候在试试看。到时候都试试看,还有就是如果;不行的话使用|来看看
到时候在来看看,看看\这个转义特殊字符的,也就是进行强制转换的
看下面ai的解释
另外一个pingpingping的题:
这点我上面是使用的内联绕过,把`ls`这个输出的结果给到cat命令来进行执行操作。
反义号就是这个作用,把里面的内容输出作为字符串给到前面的命令。
前面的操作都差不多,但是这个题在用字符串拼接的操作的话,可以使用。
本来还想试试本地pikachu靶场的rce,我那个乱码解决不了,真难受!!!后面解决了在更新。