akashswapnabalakrishnan/path-traversal-scanner
GitHub: akashswapnabalakrishnan/path-traversal-scanner
一款基于 Python 的模块化安全工具,用于自动检测 Web 应用中的路径遍历(目录遍历)漏洞并生成多格式报告。
Stars: 0 | Forks: 1
# 🔍 路径遍历漏洞扫描器
**一款基于 Python 的模块化安全工具,用于检测 Web 应用中的路径遍历(目录遍历)漏洞。**




## 📖 概述
**路径遍历漏洞扫描器** 是一款模块化的安全评估工具,旨在识别 Web 应用中的 **目录遍历** 漏洞。
它会自动生成遍历 payload,将其注入目标参数中,使用基于特征的检测方法分析服务器响应,对结果进行分类,并生成详细的报告。
该项目采用模块化架构构建,易于理解、扩展并集成到渗透测试工作流中。
# ✨ 功能
- 🔥 自动生成路径遍历 payload
- 🖥️ 支持 Linux 和 Windows payload
- 🎯 自定义目标参数注入
- 📄 基于特征的响应分析
- ⚡ 可配置的速率限制
- 📊 支持 Markdown、JSON 和 CSV 报告
- 📝 详细的日志记录
- 🧩 模块化架构
- 🖥️ 简单的桌面 GUI
- 🧪 支持单元测试
# 🏗️ 项目结构
```
.
├── main.py # CLI entry point
├── gui.py # Desktop GUI
├── target_config.py # Target configuration
├── payload_generator.py # Payload generation engine
├── wordlist_library.py # Payload wordlists
├── injection_engine.py # HTTP request handler
├── response_analyzer.py # Response analysis
├── signature_db.py # Detection signatures
├── classifier.py # Vulnerability classification
├── report_generator.py # Report generation
├── rate_limiter.py # Request throttling
├── logger.py # Logging utility
├── test_scanner.py # Unit tests
├── requirements.txt
└── README.md
```
## 安装
### Linux / macOS
```
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
如果你在没有虚拟环境的情况下进行系统级安装(例如在
Kali 上),请添加 `--break-system-packages`:
```
pip install -r requirements.txt --break-system-packages
```
### Windows
```
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
```
如果无法识别 `python`,请尝试使用 `py`:
```
py -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
```
## 桌面 GUI
`gui.py` 是一个极简、适合普通用户的检查工具:一个链接,一个按钮。
```
python gui.py # Linux/macOS
python .\gui.py # Windows (PowerShell)
```
**Linux 注意事项:** Tkinter 在 Windows 和 macOS 上随 Python 一起提供,但在
Debian/Ubuntu/Kali 上,它是一个独立的系统包:
```
sudo apt install python3-tk
```
**工作原理:**
1. 粘贴你要检查的链接(包含参数),例如:
`http://example.com/page.php?file=test`
2. 勾选确认你拥有目标所有权或已获得测试授权的复选框
3. 点击 **Check for path traversal**
该工具会自动检测 URL 查询字符串中的每个参数并逐一进行测试——无需其他配置。深度、编码覆盖率和请求延迟在内部固定为安全且广泛覆盖的默认值,因此该工具在保持操作简便的同时,也不会牺牲检测的全面性。
结果(已确认 / 可疑 / 已拦截 / 无漏洞的数量)将直接显示在窗口中。之后点击 **Open report folder** 即可查看完整的 JSON/CSV/Markdown 报告,这些报告带有时间戳并保存在 `scan_output/` 目录下。
**道德使用:** 此工具只能针对你拥有所有权或已获得明确书面授权的目标进行测试。在发送任何请求之前,必须勾选同意复选框——这是一种自我声明,而非技术强制措施,请负责任地使用。
## 使用说明
### Linux / macOS
```
python3 main.py \
--url http://lab.local/vulnerabilities/fi/ \
--param page \
--scope lab.local \
--max-depth 10 \
--os linux \
--delay 200
```
### Windows (PowerShell)
```
python main.py `
--url http://lab.local/vulnerabilities/fi/ `
--param page `
--scope lab.local `
--max-depth 10 `
--os linux `
--delay 200
```
关键 flags:
- `--scope`(可重复使用)或 `--scope-file` —— **必填**,两者选其一
- `--os` —— `linux`、`windows` 或 `both`(控制使用哪个目标文件列表)
- `--max-depth` —— 单个 payload 的遍历深度(默认为 10)
- `--delay` —— 请求之间的毫秒数;始终会强制保持 50ms 的下限
- `--yes` —— 跳过“是否继续扫描?”的确认提示
输出默认保存到 `./scan_output/` 目录:包含 `scan_results.json`、
`scan_results.csv`、`scan_report.md` 和 `scan.log`。
## Payload 数量
总 payloads = `max_depth × len(tokens) × len(target_files) × len(padding)`.//
使用默认值(`max_depth=10`、`--os linux`):10 × 10 × 4 × 4 = **1,600**。
使用 `--os both`:10 × 10 × 7 × 4 = **2,800**。
在发送任何请求之前,都会打印出确切的数量。
## DVWA 集成测试设置
1. 在本地运行 DVWA(使用 Docker 最简单):
docker run --rm -it -p 80:80 vulnerables/web-dvwa
2. 浏览器访问 `http://localhost/setup.php` 并点击“Create / Reset Database”。
3. 登录(默认账号 `admin` / `password`),进入 **DVWA Security**,将
安全级别设置为 **Low**。
4. 进入 **File Inclusion** —— 注意存在漏洞的参数是 `page`。
5. 运行扫描器:
python main.py --url http://localhost/vulnerabilities/fi/ \
--param page --scope localhost --os linux --yes
6. 检查 `scan_output/scan_report.md` 中针对
`etc/passwd` 确认的漏洞发现。
## 测试
```
pytest test_scanner.py -v
```
标签:CISA项目, GUI桌面应用, Python, Web安全, 加密, 安全规则引擎, 无后门, 漏洞扫描器, 蓝队分析, 路径遍历漏洞, 逆向工具