用途
supabase-pentest 是一个 Supabase 安全审计编排器,用于对基于 Supabase 的应用执行完整的安全评估。它通过分阶段、带验证检查点的引导式流程,帮助用户系统性地完成从环境初始化到报告生成的整个审计过程。
主要能力
该技能按顺序编排以下审计阶段:
- Phase 0:初始化 — 创建审计环境与证据收集结构,包括 .sb-pentest-context.json、.sb-pentest-audit.log 和 .sb-pentest-evidence/ 目录。
- Phase 1:检测 — 判断目标是否使用 Supabase 并提取基本信息。
- Phase 2:密钥提取 — 扫描客户端代码中暴露的凭据,包括 URL、anon key、service key、JWT 和数据库连接字符串。
- Phase 3:API 审计 — 测试 PostgREST API 暴露情况和 RLS 策略,包括表列表、表读取、RLS 和 RPC 审计。
- Phase 4:存储审计 — 检查存储桶配置和访问权限,包括桶列表、桶读取和公开暴露检查。
- Phase 5:认证审计 — 分析认证配置和潜在弱点,包括认证配置、注册、用户枚举,以及可选的已认证用户测试(需明确同意后创建测试用户以检测 IDOR)。
- Phase 6:实时与函数审计 — 测试 WebSocket 频道和 Edge Functions。
- Phase 7:报告生成 — 将所有发现编译为完整的 Markdown 报告,包含执行摘要、发现项和修复建议。
使用方式
基本用法示例:
- 完整审计(带 Plan Mode):
Run a Supabase security audit on https://myapp.example.com - 完整审计(不带 Plan Mode):
Run a Supabase security audit on https://myapp.example.com --no-plan - 从指定阶段恢复:
Continue Supabase audit from Phase 3 (API Audit) - 跳过特定阶段:
Run Supabase audit on https://myapp.example.com, skip auth audit
该技能强制要求渐进式文件更新:每次发现后立即写入 .sb-pentest-context.json,每次操作前后记录到 .sb-pentest-audit.log,每个测试后将证据保存到 .sb-pentest-evidence/ 对应目录。每个阶段转换前必须验证所有跟踪文件已更新。
适用场景
- 对 Supabase 应用运行完整安全评估
- 生产环境部署前的内部安全自评估
- 安全疑虑提出后的应用审计
- 定期安全审查
限制与前提
- 需要目标应用的公开 URL
- 必须拥有目标应用或获得明确书面授权,未授权测试可能违反法律和服务条款
- 需要能够访问目标 URL 的网络连接
- 建议在非生产时段运行审计以减少影响
- 若环境支持 Plan Mode,建议启用以便在执行前验证审计方案
- 速率限制方面,编排器实现自适应限流:检测到 HTTP 429 时指数退避,并遵循 Supabase 的速率限制响应头
- 若审计在 Phase 1 停止并提示 "Supabase not detected",应用可能使用自定义域名,可手动提供 Supabase URL
- 若上下文文件损坏,可删除 .sb-pentest-context.json 后重新开始审计
相关技能
- supabase-help — 所有技能的快速参考
- supabase-evidence — 证据收集管理
- supabase-report — 从现有上下文生成报告
- supabase-report-compare — 与之前的审计进行比较