proxydom/supahunter

GitHub: proxydom/supahunter

一款针对 Supabase 实例的高级侦察与利用框架,集成了动态密钥提取、RLS 绕过验证、实时数据流监听等能力,帮助安全研究人员发现和验证 Supabase 配置不当导致的安全风险。

Stars: 2 | Forks: 0

# Supabase Hunter (OP 模式) **针对 Supabase 实例的高级侦察与利用工具。** SupaHunter 是一款功能强大的 Python 工,旨在识别、分析和利用配置不当的 Supabase 项目。它超越了简单的表枚举,提供了深度检查、基于 Selenium 的密钥提取以及高级权限提升检查功能。 ![Python](https://img.shields.io/badge/python-3.x-blue) ![License](https://img.shields.io/badge/license-MIT-green) ## 核心功能 * **高级发现:** * **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监听, 数据导出, 数据库侦察, 数据泄露, 未授权访问, 权限提升, 漏洞赏金猎人, 白帽子, 网络安全, 自动化渗透测试, 蓝队分析, 逆向工具, 隐私保护