[ACTF2020 新生赛]Include 1
[ACTF2020 新生赛]Include 1
进入靶场后,看到tip,点击进入到以下页面,此时在url存在文件包含

对于url中的?file=flag.php猜测为get传参进行文件包含,但是虽然包含了flag.php文件,但是并没有输出flag,猜测可能是被注释掉了。
因为文件包含读取的是文件,而不是文件源码,内容里面是php代码的话就会执行。
尝试使用php伪协议来过滤读取,使其中的php代码失效
对于伪协议的题,首先会想到使用
php://input
伪协议+POSE发送PHP代码

发现该题目直接过滤了php://input伪协议
这时需要考虑使用另一种伪协议
php://filter
当它与包含函数结合时,php://filter流会被当作php文件执行。
所以我们一般对其进行编码,阻止其不执行。
从而导致任意文件读取。
?file=php://filter/read=convert.base64-encode/resource=flag.php
解析:
php://filter伪协议进行文件包含
read=convert.base64-encode 对文件内容进行编码
发送请求得到base64编码后的flag.php文件源码

将得到的base64编码内容进行解码,得到flag


浙公网安备 33010602011771号