burpsuite官方靶场之目录遍历篇
字数 1556 2025-08-10 14:13:03
Burp Suite官方靶场:目录遍历漏洞攻防详解
目录遍历漏洞概述
目录遍历(Directory Traversal)是一种常见的Web安全漏洞,攻击者通过操纵文件路径参数访问应用程序预期目录之外的文件系统。这种漏洞可能导致敏感信息泄露,如密码文件、应用程序源代码和系统配置文件。
实验环境与基础准备
- 实验平台:Burp Suite官方靶场
- 目标文件:
/etc/passwd(Unix系统用户账户信息文件) - 攻击入口点:图片加载功能中的
filename参数
六种目录遍历攻击技术详解
1. 简单目录遍历
攻击目标:读取/etc/passwd文件内容
攻击步骤:
- 识别图片加载功能作为攻击入口
- 拦截图片请求数据包
- 修改
filename参数为相对路径payload
Payload:
../../../etc/passwd
原理:利用相对路径../回溯到根目录,然后访问目标文件。
2. 绝对路径遍历
攻击目标:读取/etc/passwd文件内容
攻击步骤:
- 观察图片加载功能
- 拦截请求并直接使用绝对路径
Payload:
/etc/passwd
特点:当应用程序不限制路径格式时,直接使用绝对路径更简单有效。
3. 非递归过滤绕过
攻击目标:读取/etc/passwd文件内容
攻击步骤:
- 发现常规
../被过滤 - 尝试非标准路径表示
Payload:
..etc/passwd
技术要点:
- 应用程序仅简单过滤
../字符串 - 非递归过滤意味着只检查一次而非所有可能的
../组合 - 使用
..而非../可绕过简单过滤
4. URL编码绕过
攻击目标:读取/etc/passwd文件内容
攻击步骤:
- 识别
../被过滤的情况 - 对特殊字符进行URL编码
Payload:
%25%32%65%25%32%65/%25%32%65%25%32%65/%25%32%65%25%32%65/etc/passwd
编码解析:
%25=%%32=2%65=e- 组合起来
%25%32%65解码为%2e,即.的URL编码 - 双重编码增加了绕过几率
5. 起始路径验证绕过
攻击目标:读取/etc/passwd文件内容
攻击步骤:
- 分析应用程序验证文件起始路径
- 在合法路径后追加目标路径
Payload:
/var/www/images/etc/passwd
防御机制分析:
- 应用程序验证路径是否以
/var/www/images/开头 - 攻击者构造看似合法的路径,实际指向系统文件
6. Null字节截断绕过扩展名验证
攻击目标:读取/etc/passwd文件内容
攻击步骤:
- 识别应用程序强制验证
.jpg扩展名 - 使用null字节截断技术
Payload:
../../../etc/passwd%00.jpg
技术深度:
- Null字节:
%00或\x00,在字符串处理中被视为终止符 - 绕过原理:
- 文件扩展名检查通过(以
.jpg结尾) - 实际处理时,
%00导致字符串提前终止 - 实际访问路径变为
../../../etc/passwd
- 文件扩展名检查通过(以
编程语言验证(Python示例):
filename = "../../../etc/passwd\x00.jpg"
print(filename.endswith('.jpg')) # 返回True,验证通过
print(filename.split('\x00')[0]) # 返回"../../../etc/passwd",实际访问路径
防御措施建议
-
输入验证:
- 禁止用户输入中出现
../等路径遍历序列 - 使用白名单验证文件扩展名
- 禁止用户输入中出现
-
规范化处理:
- 对路径进行规范化后检查是否超出目标目录
- 在规范化前解码所有编码字符
-
文件系统访问控制:
- 使用chroot等机制限制应用程序访问范围
- 为Web应用程序配置专用低权限用户
-
多重防御:
- 结合文件起始路径验证和规范化检查
- 处理null字节等特殊字符
-
安全编码实践:
- 避免直接使用用户输入构造文件路径
- 使用安全的API访问文件系统
总结
目录遍历漏洞的利用技术从简单到复杂,展示了Web应用程序中文件路径处理的常见缺陷。通过这六个逐步升级的实验,安全研究人员可以全面理解:
- 基本的路径遍历原理
- 各种过滤机制的绕过技术
- 防御措施的局限性
- 安全编码的最佳实践
这些知识对于渗透测试和Web应用程序安全开发都具有重要价值。