Agent Skills
返回列表
💻

GraphQL 安全测试

开发编程 更新于 2026.08.30

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

请根据 https://skillhub.cn/install/skillhub.md 的指南,将 @user_3c6cb52e/graphql-sh-woegho 安装到当前 AI 助手中。

技能介绍

为什么需要专门的 GraphQL 安全测试

GraphQL 的灵活查询结构让它成为 API 设计的首选,但也带来了传统 REST 没有的攻击面。单一的 /graphql 端点允许客户端自由构造查询,这让内省滥用、批量请求放大、深层嵌套查询等 DoS 手段有了可乘之机。同时,字段级别的授权控制如果实现不当,很容易造成 IDOR 或越权数据泄露。很多团队在测试时只检查 HTTP 层的状态码,却忽略了查询结构本身可能存在的脆弱性。

这个技能做了什么

本技能提供一套结构化的 GraphQL 安全测试清单,按照攻击路径而非工具罗列来组织:

  • 内省与字段枚举:验证 __schema 与 __type 是否被不当地暴露给未授权用户,检查错误信息中是否泄露了字段建议。
  • 拒绝服务类测试:通过构造深层嵌套查询(query { a { b { c { d { e } } } } })和大型批量请求([{query1}, {query2}, ...]),评估服务端是否限制了 query depth 与 query complexity。
  • 注入与授权绕过:在参数值中注入恶意 payload,检查输入是否被正确过滤;测试不同用户身份下的字段级访问控制,确认是否存在 IDOR 或角色绕过。

使用时,将完整方法论作为操作清单加载,按顺序执行每个技术点的检查,记录已完成项,并根据发现建议后续测试方向。

适用边界

  • 本技能面向已有 GraphQL 端点的安全评估,不包含服务端代码审计或 schema 设计指导。
  • 测试前需获得目标系统的授权,深度和复杂度测试可能影响服务可用性。
  • 自动化工具的探测结果需结合人工分析确认,误报和漏报都可能存在。

使用场景

  • 对新建 GraphQL API 做上线前安全评审,验证内省查询是否暴露了未授权的 schema 信息。
  • 渗透测试中发现端点错误信息含字段建议,需确认是否可用于枚举隐藏字段。
  • 评估服务端是否对深层嵌套查询和批量请求设限,防止资源耗尽型 DoS。
  • 审计用户身份切换时的字段级访问控制,定位 GraphQL 接口的 IDOR 或越权风险。

适合人员

  • Web 安全工程师,需要在渗透测试中系统化地排查 GraphQL 端点的常见漏洞类型。
  • 后端开发工程师,在上线前验证 API 的输入校验和授权逻辑是否可靠。
  • Bug bounty 猎人,面对目标站点的 GraphQL 接口时需要快速定位可利用的攻击点。
  • API 架构师,关注查询复杂度限制和内省暴露等设计层面的安全决策。