GraphQL 漏洞检测
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/graphql-lr-9sn2。
技能介绍
GraphQL 接口为什么比普通 REST 更危险
GraphQL 允许客户端自由指定要查询的字段,这种灵活性同时扩大了攻击面。一个看似普通的端点可能因为 __schema 内省被直接拖库,也可能因为嵌套查询被构造出指数级复杂度请求,导致后端资源耗尽。开发者通常只关注功能是否跑通,而把鉴权、限流、字段级授权留在默认状态,这些位置正是漏洞高发区。在 Web 应用测试或漏洞赏金项目中,如果没有一套系统化的检查清单,很容易遗漏批量操作、对象级 IDOR 这类隐蔽问题。
这个技能解决什么
它是一套面向 GraphQL 端点的安全测试方法论,覆盖以下核心攻击面:
- 内省滥用:通过
__schema/__type探测未公开类型、字段和参数。 - 批量攻击:利用数组参数一次性请求大量对象,放大信息泄露或资源消耗。
- 查询深度与复杂度 DoS:构造深层嵌套或高复杂度查询,压垮解析器与执行引擎。
- 字段建议枚举:借助报错信息推断隐藏字段名,逐步拼出有效载荷。
- GraphQL IDOR:通过替换对象 ID 检查对象级访问控制是否失效。
- 参数注入:在变量或参数中注入恶意输入,验证过滤与转义逻辑。
- 授权绕过:测试登录态、角色判断或字段级权限是否可被绕过。
使用方式上,它会把上述方法论作为操作清单加载,并按顺序逐项推进。每完成一项就标记进度,再根据当前目标的实际上下文判断每条技术是否适用,最后基于发现给出后续步骤建议。
适用边界
这套清单是为授权范围内的渗透测试和漏洞赏金准备的,不能替代对业务逻辑的理解。某些技术(如查询复杂度 DoS)在真实环境中可能造成目标服务波动,执行前需要评估影响范围。同时,不同 GraphQL 实现的默认防护差异很大,清单里的每一项都应结合具体框架和上下文判断,而不是机械套用。
使用场景
- 对 Web 应用进行授权渗透测试,需检查 GraphQL 端点是否存在内省滥用与批量攻击风险
- 参与漏洞赏金项目,需系统挖掘 GraphQL 接口的查询深度 DoS 与字段级鉴权绕过
- 在 API 安全评审中,需验证 GraphQL 变量注入与对象级 IDOR 防护是否真正生效
- 评估线上 GraphQL 服务时,需枚举隐藏字段并确认限流与复杂度限制策略
适合人员
- 应用安全工程师:要对 GraphQL 接口做系统化漏洞验证并给出可执行修复建议
- 渗透测试人员:在授权测试中需要用结构化清单覆盖常见 GraphQL 攻击面
- 后端 API 开发者:想确认自己的 GraphQL 服务是否缺少查询深度限制或字段级授权
- 漏洞赏金猎人:需要快速定位 GraphQL 端点的 IDOR、参数注入与鉴权绕过