[RoarCTF 2019]Easy Calc


[RoarCTF 2019]Easy Calc

題目

題目打開是這樣的
查看源碼


.ajax是指通過http請求加載遠程數據。
可以發現有一個calc.php,輸入的算式會被傳入到這個php文件里,嘗試一下能不能打開

可以打開,並且顯示了源碼

foreach 語法結構提供了遍歷數組的簡單方式。
語法:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

在這道題里,會對黑名單中的每一個值都拿出來連接成正則表達式的字符串,/m表示多行查找
其他幾個參數:

/i (忽略大小寫)
/g (全文查找出現的所有匹配字符)
/m (多行查找)
/gi(全文查找、忽略大小寫)
/ig(全文查找、忽略大小寫)

假如繞過的話,我們就可以用eval執行任意php語句

重點

了解一下php的解析規則,當php進行解析的時候,如果變量前面有空格,會去掉前面的空格再解析
而這里黑名單過濾,沒有過濾這種情況,那么久可以構造一個查詢語句了
? num=1;var_dump(scandir(chr(47)))
scandir(/)可以查看目錄,用chr()來繞過waf,注意在calc.php頁面提交

可以看到一個f1agg,打開這個文件就好

? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))


免責聲明!

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



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