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#

 

比较菜,这些做了有好一会,大佬看到希望能给点小小意见我继续改善!

posted @ 2020-03-15 16:00  空城-1  阅读(851)  评论(0)    收藏  举报