CTFhub之web之rec
题目来自于:https://www.ctfhub.com/#/skilltree
主要绕过各种机制转载:https://telcruel.gitee.io/2020/02/06/Command/#%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0
这个大佬写的比较全!
然后就不多说,没了解过命令注入的请参看上面大佬所说的链接!
第一题:命令注入
题目源码:

没做任何过滤,直接上手!

这里我主要用的是管道符,其他也是可以的,自己尝试!

需要查看源码,发现flag!
第二题:过滤cat
也就是过滤了查看文件内容,都知道linux中的查看文件内容命令还是挺多的cat、more、less、tail、head、echo等,
随意使用一个皆可!这里就是用的more

假如所有查看内容命令都被过滤了,怎么办?
使用下面的用ca''t、ca\t等等绕过!还有双写等!
下面我用的是单引号!

第三题:过滤空格
绕过方法:
空格绕过:< 、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等
这里我直接用第一个,可以直接绕过!

第四题:过滤目录分隔符
也就是过滤了‘/‘;
说明这题应该有上级目录什么的,或者flag再根目录!
查看源码:

确实过滤了'/'
查看flag再哪里;

发现flag再上级目录!

所以不能直接cat /flag_is_here/flag_172256025826.php
绕过方法:利用cd进入这个目录,再cat查看这个flag,就可以了!但是有一点,这里的管道符就不好用了,我们需要使用';'分号分隔符!
绕过姿势:127.0.0.1;cd flag_is_here;cat flag_172256025826.php

第五题:过滤运算符
也就是过滤;、&、&&、|、||
参看源码:

发现有一个;分号没有被过滤,直接绕过!

第六题:综合过滤练习
参看源码:

发现基本都被过滤了,五种常见的通配符都被过滤了,参看上面大佬的发现有%oa空格符可以使用,这就好办了~_~!

注意点:这个不能再搜素框中使用,因为url栏会帮%给解析为%25这样就达不到效果了,所以需要再url栏中输入%0a!

下面继续:
这里用<这个绕过空格没过去,不知为何。换个姿势再来${IFS},flag绕过这里使用的是fla*模糊查看的!

继续,flag马上就出来了!

完美的绕过去了,最终payload:
ip=127.0.0.1%0acd${IFS}fla%27%27g_is_here%0aca\t${IFS}fla\g_30770577110532.php#
比较菜,这些做了有好一会,大佬看到希望能给点小小意见我继续改善!

浙公网安备 33010602011771号