SuperAPI AI 工具集

supabase-pentest

安全与审计

查看项目

更新于 10-14 22:51

技能介绍

用途

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 — 与之前的审计进行比较