[ PROMPT_NODE_27612 ]
文件路径遍历测试
[ SKILL_DOCUMENTATION ]
# 文件路径遍历测试
## 目的
识别并利用文件路径遍历(目录遍历)漏洞,该漏洞允许攻击者读取服务器上的任意文件,可能包括敏感配置文件、凭据和源代码。当用户可控的输入在未经适当验证的情况下传递给文件系统 API 时,就会出现此漏洞。
## 前置条件
### 所需工具
- 带有开发者工具的 Web 浏览器
- Burp Suite 或 OWASP ZAP
- 用于测试 Payload 的 cURL
- 用于自动化的字典文件
- 用于模糊测试 (Fuzzing) 的 ffuf 或 wfuzz
### 所需知识
- HTTP 请求/响应结构
- Linux 和 Windows 文件系统布局
- Web 应用架构
- 对文件 API 的基本理解
## 输出和交付物
1. **漏洞报告** - 已识别的遍历点和严重程度
2. **利用证明** - 提取的文件内容
3. **影响评估** - 可访问的文件和数据暴露情况
4. **修复指南** - 安全编码建议
## 核心工作流
### 第一阶段:理解路径遍历
当应用使用用户输入来构建文件路径时,会发生路径遍历:
php
// 易受攻击的 PHP 代码示例
$template = "blue.php";
if (isset($_COOKIE['template']) && !empty($_COOKIE['template'])) {
$template = $_COOKIE['template'];
}
include("/home/user/templates/" . $template);
攻击原理:
- `../` 序列向上移动一个目录
- 链接多个序列以到达根目录
- 访问预期目录之外的文件
影响:
- **机密性** - 读取敏感文件
- **完整性** - 写入/修改文件(在某些情况下)
- **可用性** - 删除文件(在某些情况下)
- **代码执行** - 如果结合文件上传或日志投毒
### 第二阶段:识别遍历点
映射应用中潜在的文件操作:
bash
# 通常处理文件的参数
?file=
?path=
?page=
?template=
?filename=
?doc=
?document=
?folder=
?dir=
?include=
?src=
?source=
?content=
?view=
?download=
?load=
?read=
?retrieve=
常见的易受攻击功能:
- 图片加载:`/image?filename=23.jpg`
- 模板选择:`?template=blue.php`
- 文件下载:`/download?file=report.pdf`
- 文档查看器:`/view?doc=manual.pdf`
- 包含机制:`?page=about`
### 第三阶段:基础利用技术
#### 简单路径遍历
bash
# 基础 Linux 遍历
../../../etc/passwd
../../../../etc/passwd
../../../../../etc/passwd
../../../../../../etc/passwd
# Windows 遍历
......wind