Agent Skills
返回列表
💻

GraphQL 隐藏参数

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md ,安装 @user_3c6cb52e/graphql-and-hidden-parameters-hhkk 。

技能介绍

要解决的问题

当接口已经提供 GraphQL,或者 REST 文档里出现 optional、deprecated、undocumented 字段时,攻击面通常不止文档展示的部分。前端可能发送比 UI 控件更丰富的请求体,移动端可能携带 role、org、feature-flag 或内部过滤字段,GraphQL 还可能通过批量请求改变认证与限流语义。

技能如何工作

它把排查分成三个层次:schema discovery、隐藏参数滥用、batching 组合测试。

GraphQL 首轮优先尝试 introspection;若受限,则改用字段建议与错误回显发现字段,探测 __type(name: "User") 这类已知类型,并从 JS / mobile bundle 中提取路由与字段线索。

高价值测试关注:user(id: "victim") 这类 IDOR;login 或 object fetch 数组化批量请求;type definitions 中暴露的 admin-only fields;related object 上权限校验更弱的 nested authz gaps。

隐藏参数发现会对照 admin docs 与 public docs,寻找 additionalProperties 或宽松 schema,检查前端是否使用比界面更完整的 request body,以及移动 endpoint 是否携带 role / org / feature-flag / internal filter。

适用边界与注意点

如果隐藏字段会影响 privilege,应继续做 api authorization 与 BOLA;如果 batching 改变 auth 或 rate 行为,应转向 api auth / JWT abuse;如果 endpoint discovery 不完整,应先补 api recon 与 docs。它适合已有 GraphQL 或文档暗示隐藏字段的场景,introspection 被禁时需依赖多路发现,且所有测试都应在授权范围内进行。

使用场景

  • 项目已启用 GraphQL,需要先判断 introspection 是否开放,再设计字段与类型探测流程。
  • REST 文档提示存在可选、废弃或未文档化字段,需要补充隐藏参数的审计清单。
  • 怀疑批量 login 或对象读取会改变认证与限流语义,需要验证 batching 的实际行为。
  • 发现 admin-only 字段可能通过 type definitions 暴露,需要确认其对普通用户的影响。

适合人员

  • 安全工程师,需要在授权测试中定位 GraphQL schema 与隐藏参数带来的越权风险。
  • 后端开发者,想确认前端或移动端是否发送了文档未暴露的 role、org 或 feature-flag 字段。
  • API 审计人员,需要在接口变更后复测 IDOR、批量请求与 nested authorization 行为。
  • QA 或渗透测试工程师,需要把 introspection 受限时的多路字段发现流程固化下来。