嘶吼CTF easy calc


進入之后可以看到我們需要輸入一個計算式來得到答案,burpsuite進行抓包之后發現頁面來自於calc.php

我們直接訪問calc.php頁面

發現源代碼泄露

可以看到當我們沒有輸入num值的時候就會顯示源代碼,否則對輸入的num進行eval命令執行,在命令執行之前有黑名單過濾。

我們需要繞過黑名單進行命令執行。

雖然是這樣,但是ls不在黑名單執行里面,所以我們先ls一下

返回了403界面。

這里很可能是因為有waf設備保護着輸入的參數,這里我們利用php的特性,使用php字符串解析繞過WAF。

因為防護設備檢測的是num,而php需要將所有參數轉換為有效的變量名,所以在解析查詢字符串時,php會做兩件事情:

1,刪除初始空格
2,將某些字符轉換成下划線(包括空格)

所以我們將傳入的變量改為%20num,即空格num,故WAF不會對其進行檢測,而php在處理的時候又會將其還原成num。

這樣成功繞過了服務器端的WAF,緊接着我們要繞過黑名單來讀取flag

使用scandir函數進行讀取,查看當前目錄下需要使用/符號,我們使用chr函數來繞過。

所以查看當前目錄下的payload為:

?%20num=print_r(scandir(chr(47)))

可知flag在flagg文件下,於是我們使用file_get_contents()函數進行讀取

payload為

?%20num=print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

flag到手


免責聲明!

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



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