proxydom/supahunter
GitHub: proxydom/supahunter
一款针对 Supabase 实例的高级侦察与利用框架,集成了动态密钥提取、RLS 绕过验证、实时数据流监听等能力,帮助安全研究人员发现和验证 Supabase 配置不当导致的安全风险。
Stars: 2 | Forks: 0
# Supabase Hunter (OP 模式)
**针对 Supabase 实例的高级侦察与利用工具。**
SupaHunter 是一款功能强大的 Python 工,旨在识别、分析和利用配置不当的 Supabase 项目。它超越了简单的表枚举,提供了深度检查、基于 Selenium 的密钥提取以及高级权限提升检查功能。
 
## 核心功能
* **高级发现:**
* **OpenAPI 检查:** 自动获取并解析 `/rest/v1/` 以映射整个数据库 schema。
* **RPC 枚举:** 探测隐藏的 RPC 函数(`get_schema`、`exec_sql` 等)。
* **智能爆破:** 如果禁用了 OpenAPI,则使用 SecLists(自动下载)来查找隐藏的表。
* **Selenium 集成:**
* **动态分析:** 渲染 React/Next.js 应用程序,以查找隐藏在 DOM 或 Runtime 中的密钥。
* **流量嗅探器:** 注入 hook 拦截 `fetch/XHR` 请求,并动态提取 `apikey` 和 `Authorization` 请求头。
* **RLS 绕过检查:**
* 执行 **真正的** `POST`、`PATCH` 和 `DELETE` 请求(安全模式),以验证 Row Level Security 是真正生效还是只是个摆设。
* **实时监听器:**
* 连接到 Supabase Realtime (Phoenix V2) 以拦截实时数据流(`INSERT`、`UPDATE` 事件)。
* **SERVICE 模式 (Service Role):**
* 自动检测 `service_role` 密钥。
* **管理员数据导出:** 下载 `auth.users`(电子邮件、可能的哈希值)、Storage Buckets 等。
* **多租户支持:**
* 处理同时使用多个 Supabase 项目的站点。
* **完整数据导出:**
* 将所有内容导出为整洁的 **SQLite** 数据库(`dump.db`)和/或 CSV 文件。
* 从公开/私有的 Storage Buckets 下载文件。
## 安装说明
1. **克隆仓库:**
git clone https://github.com/proxydom/supahunter.git
cd supahunter
2. **安装依赖:**
pip install -r requirements.txt
*(需要 `requests`、`selenium`、`webdriver-manager`、`websockets`)*
3. **安装 Firefox(用于 Selenium):**
该工具使用 Firefox Headless。请确保已安装(不过它应该会自动下载)
## 使用方法
### 基础扫描
扫描单个 URL 查找暴露的密钥和表。
```
python3 supahunter.py https://target.com
```
### 批量扫描(文件输入)
扫描 URL 列表,启用 Selenium 并将结果保存到 SQLite。
```
python3 supahunter.py -f targets.txt --selenium --sqlite --download-files
```
### 手动凭据
如果您已有 API URL 和密钥,可以直接使用(也适用于 `service_role` 密钥!)。
```
python3 supahunter.py --manual-url https://xyz.supabase.co --manual-key eyJ... ---manual-url projectid.supabase.com
```
### 认证扫描(权限提升)
提供用户 JWT token(或凭据),以测试已认证用户的 RLS 绕过情况。
```
python3 supahunter.py https://target.com --token "eyJ..."
```
*或者让工具尝试自动注册:* `--email test@test.com --password Hunter123!`
### God 模式(Service Key)
如果检测到 `service_role` 密钥,该工具将自动切换至 **SERVICE MODE**,导出 `auth.users`、审计日志以及所有的 storage buckets。
## 选项说明
| 标志 | 描述 |
| :--- | :--- |
| `--selenium` | 启用 Selenium 进行动态密钥提取(较慢但有效)。 |
| `--sqlite` | 将导出的数据保存到本地 SQLite 数据库(`loot/.../dump.db`)。 |
| `--download-files` | 从公开/开放的 Storage Buckets 下载文件。 |
| `--fuck-opsec` | **激进模式:** 不限下载速度和行数。 |
| `--listen` | 监听 Realtime WebSocket 事件以捕获实时数据泄露。 |
| `--limit N` | 限制每个表的导出行数(默认:无限制/自动)。 |
| `--dry-run` | 仅扫描,不导出数据。 |
## ⚠️ 免责声明
本工具仅供**教育目的和经授权的安全测试使用**。未经许可访问或修改数据是违法行为。作者对任何滥用行为不承担责任。
*祝狩猎愉快,伙计们,请务必遵守法律 :) *
标签:API安全测试, API密钥提取, Bug Bounty, Python安全工具, RLS绕过, Selenium动态分析, Supabase安全, Web安全, Windows内核, 协议分析, 可自定义解析器, 多租户安全, 实时WebSocket监听, 数据导出, 数据库侦察, 数据泄露, 未授权访问, 权限提升, 漏洞赏金猎人, 白帽子, 网络安全, 自动化渗透测试, 蓝队分析, 逆向工具, 隐私保护