Skip to content

Releases: RuoJi6/fuzzhound

🐕 FuzzHound v1.0 - 首个正式版本

19 Nov 01:31

Choose a tag to compare

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!

📧 联系方式


感谢使用 FuzzHound!如果觉得有用,请给个 ⭐ Star 支持一下!