问题修复
存在 GraphQL 或 REST 暗示隐藏参数时:用…
适用于目标存在 GraphQL,或 REST 文档、前端代码、移动端流量暗示存在可选、弃用、未记录字段时,系统性测试 schema 发现、隐藏参数滥用与 batching 授权/限流缺口。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
存在 GraphQL 或 REST 暗示通用
解决思路
- 先发送 `query { __typename }`,确认 GraphQL 端点与基本查询是否可用。
- 执行 introspection:`query { __schema { types { name } } }`,获取类型列表和 schema 结构。
- 若 introspection 受限,继续使用字段建议和基于错误的发现方式探测 schema。
- 使用已知类型探测,例如 `__type(name: "User")`。
- 从 JS 与移动端 bundle 中提取 GraphQL 路由/端点信息。
- 测试 IDOR:尝试 `user(id: "victim")` 等,用他人 ID 访问对象。
- 测试 batching:发送登录或对象获取操作的数组,观察认证、授权或限流行为变化。
- 测试 hidden fields:查找类型定义中暴露的 admin-only 字段并尝试访问。
- 测试 nested authz gaps:通过关联对象字段寻找校验较弱的嵌套授权缺口。
- 发现隐藏参数:查找仅出现在 admin 文档、不在公共文档中的字段。
- 检查 `additionalProperties` 或宽松 schema,寻找可传入未声明参数的空间。
- 检查前端代码,确认是否使用比可见 UI 控件更丰富的请求体。
- 检查移动端接口,确认是否携带 role、org、feature-flag 或内部过滤字段。
- 若隐藏字段影响权限,转向 `api authorization and bola` 技能继续测试。
- 若 GraphQL batching 改变认证或速率行为,转向 `api auth and jwt abuse` 技能继续测试。
- 若端点发现不完整,转向 `api recon and docs` 技能继续测试。
适用边界 · 注意事项
- 目标没有 GraphQL 接口,且 REST 文档、前端代码或移动端流量没有暴露可选、弃用或未记录字段时,不要强行套用。
- 未获得目标系统主动测试授权时,不要执行 introspection、batching、IDOR 等探测。
- 若任务只是补充 API 端点清单且尚无 GraphQL 或隐藏参数线索,优先使用 API recon and docs 技能。