SuperAPI AI 工具集

hunt-schema-enumeration

通用与其它

查看项目

更新于 10-16 03:05

技能介绍

用途:当目标 API 返回结构化 JSON 错误信息并泄露有效表名、字段名或端点路径时,利用这些提示进行黑盒侦察。常见于 PostgREST(Supabase)、FastAPI、Zod(Next.js/Node)、tRPC、GraphQL 及在生产环境开启校验错误详情的框架。

主要能力:分阶段枚举。第一阶段针对 PostgREST,用常见表名 fuzz 并读取 hint,例如响应 {"hint":"Perhaps you meant the table 'public.real_table_name'"};可结合业务领域(游戏、SaaS、医疗、政务、金融)构建词表。第二阶段挖掘 Zod/FastAPI 校验错误,POST 空 body 或错误字段可暴露全部必填字段,如 {"errors":{"usuario":["required"],"senha":["required"]}}。第三阶段执行 GraphQL introspection,即使被禁用,错误信息也可能泄露类型名。第四阶段结合 JS bundle 分析与常见命名模式做系统性表名 fuzz。

使用方式:设置 SUPABASE_URL 与 ANON_KEY 后,用 curl 请求 /rest/v1/<table>?select=*&limit=1 并附带 apikey 与 Authorization 头;对目标端点发送空 JSON body;对 /graphql 发送 introspection 查询;用 grep 从 JS 文件提取表名线索。验证命中:PostgREST 返回 [] 或数据表示表存在;Zod 错误列出字段名与类型;FastAPI 返回 422 及缺失字段数组;通用 404 HTML 页面为误报。

适用场景:REST/GraphQL API 的侦察阶段,为后续测试写入缺口、业务逻辑、JWT 攻击或无鉴权接口提供线索。

限制:仅枚举 schema 属于侦察,需进一步证明可利用字段或变更操作;GraphQL introspection 是特性而非漏洞;SQL 错误泄露表名属信息泄露;公开的 /swagger.json 或 /openapi.json 通常面向 API 消费者,需按实际暴露的管理或内部端点评估。技能自检要求 SKILL.md 含 name、revision_date、category 与 Pitfalls 段。