srdaniellp/supabase-scanner

GitHub: srdaniellp/supabase-scanner

一款自动化安全评估工具,用于发现和检测 Supabase 实例中行级安全(RLS)的配置缺陷及数据暴露风险。

Stars: 0 | Forks: 0

# Supabase Scanner 一款用于分析 Supabase 实例中行级安全(Row Level Security, 简称 RLS)配置的安全评估工具。 ``` ____ _ ____ / ___| _ _ _ __ __ _| |__ __ _ ___ ___/ ___| ___ __ _ _ __ _ __ ___ _ __ \___ \| | | | '_ \ / _` | '_ \ / _` / __|/ _ \___ \ / __/ _` | '_ \| '_ \ / _ \ '__| ___) | |_| | |_) | (_| | |_) | (_| \__ \ __/___) | (_| (_| | | | | | | | __/ | |____/ \__,_| .__/ \__,_|_.__/ \__,_|___/\___|____/ \___\__,_|_| |_|_| |_|\___|_| |_| ``` ## 功能 - **自动凭证发现**:从网站和 GitHub 仓库中提取 Supabase URL 和 Anon Key - **表枚举**:通过 PostgREST API 发现可访问的表 - **RLS 状态检测**:识别被禁用、部分配置或正确配置的 RLS - **写入权限测试**:测试 INSERT/UPDATE/DELETE 权限 - **存储桶分析**:列出存储桶及其可见性设置 - **RPC 函数发现**:枚举可访问的 RPC 函数 - **数据导出**:将暴露的数据导出为 JSON 和 CSV 格式 - **详细报告**:生成全面的安全评估报告 ## 安装 ``` git clone https://github.com/srdaniellp/supabase-scanner.git cd supabase-scanner pip install -r requirements.txt ``` ## 用法 ``` python supabase_scanner.py ``` ### 输入选项 该扫描器接受三种类型的输入: 1. **网站 URL**:`https://example.com` - 自动从该站点提取 Supabase 凭证 2. **直接 Supabase URL**:`https://abc123.supabase.co` - 使用提供的项目 URL 3. **项目引用**:`abc123xyz` - 自动构建 URL ### 环境变量 为了获得更好的 GitHub 搜索结果(更高的速率限制),请设置您的 GitHub token: ``` export GITHUB_TOKEN=your_github_token ``` ## 输出 ### 控制台报告 扫描器提供详细的控制台报告,包括: - RLS 状态(已禁用/部分配置/已启用) - 暴露的表及其行数列表 - 写入权限状态 - 存储桶可见性 - 可用的 RPC 函数 ### 文件输出 - `supabase_report__.txt` - 文本报告 - `supabase_dump__/` - 包含以下内容的目录: - `.json` - 每个表的 JSON 转储 - `
.csv` - 每个表的 CSV 转储 - `SUMMARY.json` - 扫描摘要 ## 示例 ``` $ python supabase_scanner.py Target: https://example.com [*] Step 1: Analyzing website source code... [+] Supabase URL extracted: https://abc123.supabase.co [+] Anon key extracted from site! [*] Starting analysis... [+] Connection OK (Status: 200) [*] Enumerating tables... [FOUND] TABLE: users (1523 rows) [FOUND] TABLE: profiles (1520 rows) [*] Testing write access... [+] No write access detected ====================================================================== SUPABASE ANALYSIS REPORT ====================================================================== Target: https://abc123.supabase.co Date: 2024-01-15 14:30:00 [WARNING] RLS PARTIALLY CONFIGURED Some tables are exposed EXPOSED TABLES (2) >> users (1523 records) Columns: id, email, created_at... ``` ## 免责声明 本工具仅供授权的安全测试和教育目的使用。在测试任何您不拥有的系统之前,请务必获得适当的授权。对于因滥用本工具而造成的任何误用或损害,作者概不负责。 ## 许可证 MIT License - 详情请参阅 [许可证](LICENSE)。
标签:DFIR, Python, StruQ, Supabase, 无后门, 逆向工具