Stu-Man-Group/PathROVER
GitHub: Stu-Man-Group/PathROVER
PathROVER 是一款用于授权渗透测试的路径遍历漏洞自动化利用工具,通过基线比对、payload 注入和敏感数据提取实现从漏洞确认到数据取证的完整流程。
Stars: 1 | Forks: 0
```
██████╗ █████╗ ████████╗██╗ ██╗██████╗ ██████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔══██╗╚══██╔══╝██║ ██║██╔══██╗██╔═══██╗██║ ██║██╔════╝██╔══██╗
██████╔╝███████║ ██║ ███████║██████╔╝██║ ██║██║ ██║█████╗ ██████╔╝
██╔═══╝ ██╔══██║ ██║ ██╔══██║██╔══██╗██║ ██║╚██╗ ██╔╝██╔══╝ ██╔══██╗
██║ ██║ ██║ ██║ ██║ ██║██║ ██║╚██████╔╝ ╚████╔╝ ███████╗██║ ██║
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝
```
**用于授权渗透测试中已确认漏洞的自动化路径遍历漏洞利用与敏感数据提取。**
## 工作原理
1. **基线**:发送 3 个包含无效值的探测请求,以指纹识别服务器的正常响应(状态码、响应体长度、内容类型)
2. **扫描**:针对您在请求文件中标记的注入点,并发触发所有字典 payload
3. **分类**:将每个响应与基线进行比较,并分配置信度级别(参见[分类说明](#classification-legend))
4. **提取与报告**:离线解析已确认的命中结果以提取敏感数据(凭据、密钥、token、哈希等),并以您选择的格式生成报告
## 安装
无论使用以下哪种安装方式,都需要 Python 3.10 或更高版本。
### 快速开始(推荐)
如果您已经安装了 [`pipx`](https://pipx.pypa.io/):
```
git clone https://github.com/Stu-Man-Group/PathROVER.git
cd PathROVER
pipx install .
```
就这么简单。现在您可以在 shell 中使用 `pathrover` 了。
还没有安装 `pipx`?请查看下方说明。
### 首先安装 pipx
大多数现代 Linux 发行版(Kali Linux、Debian 12+、Ubuntu 23.04+)将
系统 Python 标记为“外部管理”,这会阻止直接使用 `pip install`。
请先安装 `pipx`,然后使用上方的快速开始步骤:
```
sudo apt install pipx && pipx ensurepath
```
之后请打开一个新的 shell(或运行 `source ~/.bashrc`),
以便将 `~/.local/bin` 加入您的 `PATH`。
### 替代方案:pip / virtualenv
如果您不想安装 `pipx`,可以将其安装在虚拟环境中:
```
git clone https://github.com/Stu-Man-Group/PathROVER.git
cd PathROVER
python3 -m venv .venv
source .venv/bin/activate
pip install .
```
在虚拟环境处于活动状态时,您可以在 shell 中使用 `pathrover`。
## 用法
```
pathrover -r --os --report-type --output [options]
```
### 标志
| 标志 | 必需 | 默认值 | 描述 |
|---|---|---|---|
| `-r`, `--request` | 是 | (无) | 原始 HTTP 请求文件(Burp Suite 格式)。必须包含 `ROVER` 标记。 |
| `--os` | 是 | (无) | 目标 OS。取值之一:`linux`、`windows`、`macos`。 |
| `--report-type` | 是 | (无) | 输出格式。取值之一:`html`、`json`、`csv`。 |
| `--output` | 是 | (无) | 报告的输出文件路径。 |
| `--threads` | 否 | `10` | 并发异步请求数(1–200)。 |
| `--threshold` | 否 | `5` | 标记为 CANDIDATE 的响应长度差异百分比(0–100)。 |
| `--timeout` | 否 | `10` | 每个请求的超时时间(秒)(1–300)。 |
| `--proxy` | 否 | (无) | HTTP/HTTPS 代理 URL(例如 `http://127.0.0.1:8080`)。 |
| `--version` | 否 | (无) | 打印版本号并退出。 |
### 示例
```
pathrover -r req.txt --os linux --report-type html --output report.html
pathrover -r req.txt --os windows --report-type json --output out.json --threads 20
pathrover -r req.txt --os macos --report-type csv --output out.csv --proxy http://127.0.0.1:8080
```
## 请求文件格式
PathROVER 接受 Burp Suite 格式的原始 HTTP 请求。在您想要测试的注入点处的遍历前缀之后放置 `ROVER` 标记,该标记将在扫描期间被替换为每个 payload。
**示例:query parameter**
```
GET /download?file=../../../../../../../ROVER HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: */*
```
**示例:POST body**
```
POST /api/fetch HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 37
{"path":"../../../../../../../ROVER"}
```
该标记在 URL 路径、query parameter、headers、form body 参数以及 JSON body 字段中均受支持。
## 分类说明
| 结果 | 含义 |
|---|---|
| `CONFIRMED` | 匹配到二进制魔数、已知文件内容签名匹配,或匹配到常规内容启发式。会对这些结果执行敏感数据提取。 |
| `CANDIDATE` | 响应在结构上偏离基线(状态码更改或响应体长度差异超过阈值),但没有内容匹配。值得人工审查。 |
| `MISS` | 响应与基线无法区分。 |
| `ERROR` | 请求超时或发生网络错误。 |
## 报告格式
| 格式 | 描述 |
|---|---|
| `html` | 独立的 HTML 报告,包含扫描摘要、命中表和提取的发现结果。 |
| `json` | 机器可读的 JSON,适用于管道传输到其他工具或脚本。 |
| `csv` | 所有发现结果的扁平 CSV,易于导入电子表格。 |
## 许可证
[MIT](LICENSE),版权所有 (c) 2026 Stu Skove
## 已知行为
- **SSL 验证已禁用。** PathROVER 在所有 HTTPS 连接上设置 `verify=False`。这是故意的:渗透测试目标通常使用自签名证书。这意味着所有 HTTPS 流量都容易受到 MITM 拦截。仅在您控制或信任的网络上运行 PathROVER。
- **报告文件包含敏感数据。** 已确认的命中结果所生成的报告将以明文形式包含提取的凭据、私钥和 token。此仓库中的 `.gitignore` 已排除所有三种报告格式(`*.html`、`*.csv`、`*.json`)。切勿将报告输出提交到版本控制。
标签:Blue Team, HTTP工具, StruQ, 敏感数据提取, 网络安全审计, 网络调试, 自动化, 计算机取证, 路径遍历, 逆向工具