Releases: RuoJi6/fuzzhound
Releases · RuoJi6/fuzzhound
🐕 FuzzHound v1.0 - 首个正式版本
FuzzHound 是一款智能化的 API 安全测试工具,专为 Swagger/OpenAPI 文档设计。
✨ 核心功能
🎯 自动化 API 发现
- 支持 Swagger 2.0 和 OpenAPI 3.0 规范
- 自动解析 JSON 和 YAML 格式文档
- 智能识别所有 API 端点和参数
- 完整支持
$ref引用解析
🔍 多种模糊测试模式
- 字典攻击: 用户名/密码暴力破解测试,支持自定义字典
- 数值模糊: IDOR(越权访问)漏洞检测,支持范围遍历
- SQL 注入:
- 三种检测模式:基础(10个payload)、智能(20个)、完整(155个)
- 基线对比分析,自动计算风险评分
- 支持 152 种 SQL 错误特征匹配
- 文件上传: 危险文件上传漏洞测试
🛡️ 智能漏洞检测
- 基线对比分析
- 风险评分机制(≥70分=高度可疑,≥50分=可能有效)
- 详细的漏洞报告
- 智能去重和误报过滤
🔧 灵活配置
- 多种认证方式: Bearer Token、API Key、Basic Auth、Cookie
- 代理支持: 兼容 Burp Suite、Charles 等抓包工具
- 并发控制: 自定义线程数和请求延迟
- 参数控制: 关键字匹配和全参数模糊
- 枚举限制: 可限制枚举参数测试数量
📊 报告生成
- 生成详细的 HTML 报告
- 包含完整的请求/响应数据
- 漏洞风险等级标注
- 测试统计和状态码分布
🚀 快速开始
安装依赖
pip3 install -r requirements.txt基础用法
# 执行所有模糊测试
python3 fuzzhound.py -u http://example.com/api-docs --fall
# SQL 注入智能检测
python3 fuzzhound.py -u http://example.com/api-docs --fpsql --sql-mode smart
# 使用认证令牌
python3 fuzzhound.py -u http://example.com/api-docs --fall -H "Authorization: Bearer YOUR_TOKEN"
# 数值模糊测试(IDOR 检测)
python3 fuzzhound.py -u http://example.com/api-docs --fnumber 1-10000
# 使用代理
python3 fuzzhound.py -u http://example.com/api-docs --fall --proxy http://127.0.0.1:8080📖 主要参数说明
| 参数 | 说明 |
|---|---|
-u, --url |
Swagger 文档 URL |
--fall |
启用所有模糊测试 |
--fpsql |
SQL 注入测试 |
--fpnum |
数值模糊测试 |
--fuser |
用户名字典攻击 |
--fpass |
密码字典攻击 |
-H, --header |
自定义请求头 |
--proxy |
代理设置 |
-t, --threads |
并发线程数 |
-d, --delay |
请求延迟(秒) |
--sql-mode |
SQL 注入模式(basic/smart/full) |
--fuzz-filter |
只对指定状态码的 API 进行 Fuzz |
--enum-limit |
限制枚举参数测试数量 |
🎯 适用场景
- API 安全测试: 全面检测 API 接口的安全漏洞
- 渗透测试: 快速发现越权、注入等常见漏洞
- 漏洞挖掘: 基于字典和 Payload 的自动化挖掘
- 安全审计: 生成详细的测试报告用于审计
- DevSecOps 集成: 可集成到 CI/CD 流程中
📋 使用示例
场景 1:快速安全扫描
python3 fuzzhound.py -u https://api.example.com/swagger.json --fall -t 15场景 2:SQL 注入专项测试
python3 fuzzhound.py -u https://api.example.com/api-docs \
--fpsql \
--sql-mode full \
--fuzz-filter 200场景 3:用户名/密码爆破
python3 fuzzhound.py -u https://api.example.com/api-docs \
--fuser all:all \
--fpass all:all \
-t 20场景 4:IDOR 漏洞检测
python3 fuzzhound.py -u https://api.example.com/api-docs \
--fnumber 1-10000 \
--fuzz-filter 200🔧 配置文件
支持通过 config/config.yaml 自定义默认配置:
# 目标配置
target:
base_url: "http://example.com"
timeout: 10
verify_ssl: false
# 请求配置
request:
threads: 5
delay: 1.5
retry: 1
# Fuzz 配置
fuzz_username:
enabled: false
username_file: "config/usernames.txt"
count: 15📁 项目结构
fuzzhound/
├── fuzzhound.py # 主程序入口
├── modules/ # 核心模块
│ ├── cli_parser.py # 命令行参数解析
│ ├── swagger_parser.py # Swagger 文档解析
│ ├── api_tester.py # API 测试引擎
│ ├── fuzz_engine.py # Fuzz 测试引擎
│ └── report_generator.py # 报告生成
├── config/ # 配置文件
│ ├── config.yaml # 主配置文件
│ ├── usernames.txt # 用户名字典
│ ├── top100_password.txt # 密码字典
│ └── sql_payloads_*.txt # SQL 注入 Payload
└── output/ # 输出目录
⚠️ 免责声明
本工具仅供授权的安全测试使用。使用者应遵守相关法律法规,未经授权的测试可能违法。作者不对任何滥用行为负责。
请确保:
- 仅在获得明确授权的系统上使用
- 遵守当地法律法规和道德规范
- 不用于任何非法或恶意目的
📄 许可证
MIT License
🤝 贡献
欢迎提交 Issue 和 Pull Request!
- 报告问题: GitHub Issues
- 功能建议: GitHub Discussions
- 贡献代码: Fork 项目并提交 PR
📧 联系方式
感谢使用 FuzzHound!如果觉得有用,请给个 ⭐ Star 支持一下!