进入靶场
查看源码:
看到?file=flag.php 猜测文件包含漏洞
知识点:
php://filter与包含函数结合时,php://filter流会被当作php文件执行。
所以我们一般对其进行编码,阻止其不执行。从而导致任意文件读取。
php://filter 伪协议文件包含读取源代码,加上read=convert.base64-encode,
用base64编码输出,不然会直接当做php代码执行,看不到源代码内容。
php://input 伪协议 + POST发送PHP代码 (不行)
直接构造payload:
?file=php://filter/convert.base64-encode/resource=flag.php
得到这个字符串
一看‘=’就知道是base64
然后base64解码
得到flag:
flag{933ae4aa-665b-45d5-8756-f750d69c4a64}