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)。