本題主要考查了利用php://filter偽協議進行文件包含
進入題目根據Tip進入正題,可以看到URL中存在文件包含(題目名也很直接)
首先考慮 "php://input"偽協議 + POST發送PHP代碼 的經典套路
重新考慮之后使用 "php://filter"偽協議" 來進行包含。當它與包含函數結合時,php://filter流會被當作php文件執行。所以我們一般對其進行編碼,阻止其不執行。從而導致任意文件讀取。
構造Payload: ?file=php://filter/read=convert.base64-encode/resource=flag.php
這里需要注意的是使用php://filter偽協議進行文件包含時,需要加上read=convert.base64-encode來對文件內容進行編碼
發送請求得到base64編碼后的flag.php文件源碼:
解碼