[极客大挑战 2019]Havefun
打开题目,看到一个确实 Havefun 的页面,于是直接 F12 查看源代码。
根据所给出的 PHP 代码在当前页面 URL 尝试传入参数,最终竟直接得出 flag。
[ACTF2020 新生赛]Include
【文件包含】
打开题目页面显示一个 tips 的超链接。点击进入,页面有所显示但并不是 flag ,通过观察可以发现,这个超链接所进入的页面为原题目页面提交/?file=flag.php
参数。
所提交的参数flag.php
,猜测应该不仅仅是打印这一句话这么简单,由于参数为file
并且此题目为Include
,应该是文件包含的题目。
于是尝试通过 PHP 伪协议来读取源文件。
?file=php://filter/read=convert.base64-encode/resource=flag.php
成功得到一串 base64 编码的字符串,再用工具进行解码得到 flag。
补充
php伪协议
php://
是一种伪协议,主要是开启了一个输入输出流,理解为文件数据传输的通道。
php://filter/read/convert.base64-encode/resource=php文件
在URL中传入参数如果是 php文件会被Web容器解释,从而看不到源码。通过伪协议php://filter
的方式来打开数据流,并将其用base64编码的方式读取,显示在页面上。
(PHP中还有很多伪协议)
文件包含漏洞
存在文件包含漏洞条件是服务器php配置文件中以下两个参数均为On:
allow_url_fopen=On
allow_url_include=On // 远程文件包含