Prajwol6/ApiHawk
GitHub: Prajwol6/ApiHawk
异步 API 侦察与漏洞扫描工具,通过端点探测和 JS 抓取快速发现 REST/GraphQL 接口中的安全风险。
Stars: 0 | Forks: 0
# APIHawk 🦅
## 功能简介
APIHawk 自动化了 REST API 和 GraphQL 端点的侦察与漏洞发现阶段。无需再使用 Burp Suite 手动探测每个路径,或苦苦等待 gobuster 运行结束,APIHawk 利用异步请求在几秒内即可探测数百个端点 —— 它还通过抓取 JS bundles 进行更深入的挖掘,从而发现其他扫描器遗漏的后端 URL 和敏感信息。
## 功能特性
- **JS Scraper** — 获取目标的所有 JS bundles,提取 API 端点、后端 URL,并扫描硬编码的敏感信息(API keys、tokens、AWS keys、DB URIs)
- **SPA 误报过滤器** — 对全包揽的 200 响应(常见于 React/Vue/Angular 应用)进行指纹识别,并自动过滤虚假结果
- **异步端点 Fuzzing** — 并发探测 100+ 个常见的 API 和 GraphQL 路径
- **POST 模式探测** — 使用 POST 请求重试响应为 405 的端点,以捕获认证和数据端点
- **GraphQL 检测** — 检测是否开启自省、以及详细的错误信息泄露
- **CORS 错误配置检测** — 捕获通配符 CORS 和允许携带凭证的反射来源
- **安全响应头审计** — 检查缺失的 `X-Content-Type-Options`、`X-Frame-Options`、`HSTS`
- **技术指纹识别** — 从响应头和 cookies 中检测 server、framework、CDN、WAF、runtime
- **WAF 规避模式** — 轮换 user agents,随机化 headers,对请求添加延迟抖动,并探测 URL 编码的路径变体
## 安装
```
git clone https://github.com/Prajwol6/ApiHawk.git
cd ApiHawk
pip install aiohttp brotli --break-system-packages
```
## 使用方法
```
# 基本扫描
python Apihawk.py -u https://target.com
# 带详细输出的完整扫描
python Apihawk.py -u https://target.com -v
# 仅 JS scraper(快速侦察 — 查找后端 URL)
python Apihawk.py -u https://target.com --js-only
# WAF evasion 模式
python Apihawk.py -u https://target.com --waf-evasion
# 为慢速服务器设置更高的 timeout
python Apihawk.py -u https://target.com -t 30
# 组合所有选项
python Apihawk.py -u https://target.com -t 30 -c 100 --waf-evasion -v
```
## 命令行参数
| 参数 | 描述 |
|------|-------------|
| `-u` | 目标 URL(必填) |
| `-t` | 请求超时时间(单位:秒,默认:8) |
| `-c` | 并发 workers 数量(默认:50) |
| `-v` | 详细输出 — 显示 404、超时、被 SPA 过滤的结果 |
| `--js-only` | 仅运行 JS scraper,跳过端点 fuzzing |
| `--waf-evasion` | 启用 WAF 规避技术 |
## 输出示例
```
APIHawk | API & GraphQL Vulnerability Scanner
For authorized targets only
[*] Phase 0: Scraping JS files for endpoints and secrets...
[*] Found 2 JS file(s)
[*] Scraping https://target.com/static/js/main.4f28f604.js (169KB)
[+] External URLs found (possible backends):
https://api.target-backend.onrender.com/api/analyze
[+] No hardcoded secrets detected in JS files
[!] SPA catch-all detected (size=385 bytes, hash=f1aedd97)
[!] Responses matching this fingerprint will be marked as false positives
[*] Phase 1: Discovering API endpoints (102 paths)...
[+] [200] https://api.target-backend.onrender.com/api/v1 (1243 bytes)
[!] [401] https://api.target-backend.onrender.com/api/admin (Auth required — endpoint exists)
[*] Phase 4: Fingerprinting target + checking CORS / security headers...
[+] Target fingerprint:
Server : cloudflare
Framework : Express
CDN/WAF : Cloudflare
Runtime : Node.js
[VULN] CORS Misconfiguration
URL : https://api.target-backend.onrender.com/api/v1
Severity : HIGH
Impact : Cross-origin credential theft possible
```
## 发现内容
| 漏洞 | 严重程度 |
|---------------|----------|
| 开启了 GraphQL 自省 | HIGH |
| CORS 错误配置 | HIGH |
| JS 中的硬编码敏感信息 | HIGH |
| GraphQL 详细错误信息 | MEDIUM |
| 缺少安全响应头 | LOW |
## 法律免责声明
**请仅在您拥有或已获得明确书面授权的目标上使用 APIHawk。**
未经授权的扫描是违法的。本工具仅适用于:
- 您自己的应用程序
- 经授权的渗透测试项目
- 允许自动化扫描的漏洞赏金计划
作者对本工具的任何滥用行为不承担责任。
标签:API安全测试, CISA项目, CORS配置错误检测, GraphQL安全, HTTP指纹识别, JavaScript爬取, Python安全工具, REST API安全, WAF绕过, 代码生成, 信息泄露检测, 单页应用安全测试, 大数据, 实时处理, 密码管理, 异步并发扫描, 报错信息泄露, 渗透测试工具, 灰帽黑客工具, 目录扫描, 硬编码密钥扫描, 网络安全扫描器, 自动化漏洞扫描, 逆向工具, 黑盒测试