PiousJames/API-Security-toolkit
GitHub: PiousJames/API-Security-toolkit
这是一个基于Python的API安全扫描工具包,用于自动化发现和评估API端点的安全漏洞。
Stars: 0 | Forks: 0
# API 安全扫描器 — 漏洞赏金版
```
# 扫描任意网站 — 自动发现 API 端点
python api_scanner.py --url https://target.com
# 直接 API 端点 — 立即扫描
python api_scanner.py --url https://target.com/api/v1 --token YOUR_TOKEN
# 仅绘制攻击面图
python api_scanner.py --url https://target.com --discover-only
# 完整扫描,保存所有报告
python api_scanner.py --url https://target.com --full-scan --output my_scan
# 针对 VulnAPI(本地练习)
python api_scanner.py --url http://localhost:5000
```
## 工作原理
### 若提供基础 URL (例如 https://target.com)
1. **发现** — 探测 40+ 个常见路径以发现 API 端点、GraphQL、Swagger 文档
2. **JS 扫描** — 读取 JavaScript 文件以查找隐藏的 API 路径
3. **Swagger 解析** — 下载并解析 OpenAPI 规范以发现更多端点
4. **扫描** — 对发现的端点运行所有漏洞模块
5. **报告** — 保存 HTML、JSON、CSV、Markdown、SARIF 报告
### 若提供直接 API URL (例如 https://target.com/api/v1)
- 跳过发现阶段,立即扫描
## 模块
| 模块 | 发现内容 | OWASP |
|---|---|---|
| `graphql` | 内省、私有字段、批量查询、字段建议 | API3, API8 |
| `bola` | 未授权对象访问、顺序 ID、方法篡改、查询参数 IDOR | API1 |
| `auth` | 未认证端点、方法覆盖、权限提升 | API2, API5 |
| `headers` | CORS 源反射、缺少 HSTS/CSP/XFO、服务器信息泄露 | API8 |
| `jwt` | alg:none 绕过、弱密钥、缺少过期时间、缺少声明 | API2 |
| `sensitive` | 社会安全号码、信用卡、AWS 密钥、数据库字符串、堆栈跟踪、详细错误 | API3 |
| `ratelimit` | 缺少限制、IP 欺骗绕过、高延迟 | API4 |
| `fuzz` | SQLi、SSTI、路径遍历、命令注入、开放重定向 | API8 |
| `mass-assignment` | 隐藏字段接受、价格/角色操纵 | API3 |
## 所有选项
```
--url URL Target URL (required)
--token TOKEN Bearer token / JWT / API key
--module MODULE Run specific module(s) — repeat for multiple
--full-scan Run all 9 modules
--discover-only Map endpoints only, no vulnerability scanning
--no-discover Skip discovery, scan given URL directly
--scan-all Scan every discovered endpoint (more thorough, slower)
--params PARAMS Query params to fuzz, e.g. q,id,search
--requests N Burst size for rate limit testing (default: 30)
--timeout N Request timeout seconds (default: 12)
--no-ssl-verify Disable SSL certificate verification
--output STEM Report filename stem (e.g. my_scan)
--format FORMAT html | json | csv | markdown | sarif | all
--verbose Show all findings, not just critical/high
--threads N Discovery thread count (default: 20)
```
## 报告格式
| 格式 | 用途 |
|---|---|
| `.html` | 交互式浏览器报告 — 点击发现项展开详情 |
| `.json` | 机器可读 — 导入其他工具 |
| `.csv` | Excel / 电子表格跟踪 |
| `.md` | Markdown — 粘贴到文档或 GitHub Issues |
| `.sarif` | 上传到 GitHub 代码扫描 / 安全选项卡 |
## 针对 VulnAPI 进行练习
```
# 启动 VulnAPI(终端 2)
cd vuln-api
python app.py
# 扫描它(终端 1)
python api_scanner.py --url http://localhost:5000 --full-scan --output vulnapi_report
start vulnapi_report.html
```
预期结果:9+ 个严重级别,10+ 个高危级别发现
## 要求
- Python 3.9 或更高版本
- 无需其他依赖 — 无需 pip,无需 venv,无需 Docker
## 法律声明
仅限授权安全测试。切勿扫描您不拥有或缺乏书面测试许可的目标。
标签:API安全, API测试, API端点发现, BOLA漏洞, Bug Bounty, DNS枚举, Docker容器, GraphQL安全, GraphQL安全矩阵, JSON输出, JWT安全, OWASP API安全, Web安全, 可自定义解析器, 头部安全, 安全扫描器, 攻击面发现, 敏感数据泄露, 网络安全工具, 蓝队分析, 认证绕过, 逆向工具