SwaggerFuzzer:一款自动化 OpenAPI/Swagger 接口未授权访问测试工具

发布于:2025-06-09 ⋅ 阅读:(17) ⋅ 点赞:(0)

🌐 一款自动化 OpenAPI/Swagger 接口未授权访问测试工具


  在现代接口安全测试中,自动化检测未授权访问漏洞已成为不可或缺的流程。SwaggerFuzzer 受启发于常见安全测试流程中对 Swagger 自动化利用的需求,适合搭配 BurpSuite 使用。是一款专为渗透测试人员打造的轻量级命令行工具,支持对 OpenAPI 3.0 / Swagger 接口文档进行解析、测试并生成详细报告,快速定位安全隐患。


🚀 工具介绍:SwaggerFuzzer


  SwaggerFuzzer 是一个支持本地与远程 OpenAPI/Swagger 文档解析的自动化接口扫描工具,具备参数提取、模拟请求、响应记录、权限校验等功能,适用于 API 安全测试、渗透测试前的预审查等场景。


✨ 核心功能亮点

  • 🔍 自动解析 OpenAPI 3.0/3.1 JSON 文档(支持远程和本地文件)
  • 🧪 构造所有 API 请求,包括 Path、Query、Header、Body 各种参数
  • ⚡ 支持多线程并发测试接口,提升 fuzz 速度
  • 📄 自动根据 content-type 构造 JSON、表单、XML、文件上传、ZIP、PDF 等请求体
  • 🕵️ 检测敏感响应(如状态码 200、5XX、422、400)
  • 🖨️ 控制台彩色输出简洁摘要(带状态码高亮)
  • 📦 CSV 文件保存接口调用结果,支持后续分析
  • 🔌 支持代理抓包(例如通过 BurpSuite 拦截)
  • 🔐 可添加自定义请求头(如 Authorization)

🚀 快速使用

python main.py -u http://example.com -f swagger.json

或者只使用远程地址:

python main.py -u http://example.com/swagger/v1/swagger.json

在这里插入图片描述

🧰 支持参数

参数 说明 示例
-u, --url 必填,base URL 或完整 OpenAPI JSON 地址 http://target.com
-f, --file 可选,OpenAPI JSON 本地路径或相对路径 ./swagger.json
-p, --proxy 设置代理 http://127.0.0.1:8080
-t, --threads 多线程数量(默认1) -t 5
-o, --output 输出文件格式(当前仅支持 csv) -o csv
-d, --delay 每个请求间隔秒数 -d 0.5
--header 自定义请求头(可重复) --header="Authorization: Bearer xxx"

📌 项目结构

.
├── SwaggerFuzzer.py     # 主程序逻辑(加载 spec、构造请求、发送与记录)
├── util.py              # 工具函数(header 解析、URL 拼接、加载 Swagger 文档)
├── requirements.txt     # 依赖库
├── README.md            # 使用说明

📥 获取与下载

工具开源于 GitHub,可访问以下地址获取源码与使用说明:

👉 GitHub 仓库地址https://github.com/Secur1ty0/SwaggerFuzzer

欢迎 Star、Fork 并提交 issue 参与完善!