从业者-文件路径遍历-空字符绕过
# 实验室:文件路径遍历,使用空字符绕过文件扩展名验证
# 题目
本实验室的 产品图像显示路径 中存在文件路径遍历 (opens new window)漏洞。
应用程序 验证所提供的文件名 是否以预期的扩展名结尾。
若要解决实验室问题,请检索/etc/passwd
文件的内容。
- name: 实验室-从业者
desc: 文件路径遍历,使用空字符绕过文件扩展名验证 >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/file-path-traversal/lab-validate-file-extension-null-byte-bypass
bgColor: '#001350'
textColor: '#4cc1ff'
1
2
3
4
5
6
2
3
4
5
6
# 实操
根据题意,可得实验目标:
- 在 产品图像的显示路径 当中,存在文件路径遍历漏洞。
- 应用程序实现了某种防护措施,它会验证用户输入 是否以指定的扩展名结尾。
- 尝试绕过防护 并利用该漏洞,检索 /etc/passwd 文件的内容。
点击 “Access the lab” 进入实验室。

实验室首页如下,可以看到很多的产品图像。
任意选择一张图像,在新的标签页中 打开图像。

打开之后,URL 路径中存在filename
参数,它直接以文件名作为用户输入。

添加多个扩展名,例如65.jpg.jpg
,响应信息 “未找到文件” 。

在两个扩展名之间添加空字符,例如%00
,形成65.jpg%00.jpg
,图片正常显示。
说明第二个扩展名被忽略了,应用程序只识别了前面的65.jpg
。

同理,使用遍历序列,尝试检索/etc/passwd
文件的内容,响应信息 “未找到文件” 。

添加 空字符和扩展名,例如%00.jpg
。然后再次访问,页面返回了错误信息。
?filename=../../../../../etc/passwd%00.jpg
1

在 BurpSuite 中进行查看,响应数据包返回了/etc/passwd
文件的内容,说明漏洞利用成功。

实验完成。

编辑 (opens new window)