用途:对暴露 /graphql 或 /api/graphql 端点的应用进行 GraphQL 安全测试,适用于漏洞赏金或渗透测试。
主要能力:检测 introspection 是否开启并提取完整 schema;在 introspection 关闭时利用字段建议泄露字段名;测试 node() 全局接口的 IDOR(node ID 为 base64 编码的类型+ID,如 dXNlcjoy 解码为 User:2);测试数组批处理与别名方式绕过限流;检查 mutation 授权缺口;测试嵌套查询深度限制与指令重载。
使用方式:需安装 curl,准备 GraphQL 端点 URL、有效认证 token,以及用于 IDOR 测试的第二个用户 node ID。通过 curl 向端点发送 POST 请求,依次执行 introspection 测试、schema 提取、字段建议、node() IDOR、批处理、别名暴力、mutation 授权、嵌套深度等步骤,并用 python3 -m json.tool 格式化输出。
限制:资料未提供具体平台、收费或效果信息;部分测试需手动进行;若 introspection 关闭、批处理不支持、node() 返回 null 或深度限制已启用,则相应测试可能无法完成,需按失败模式调整。