SuperAPI AI 工具集

performing-graphql-depth-limit-attack

编程与开发

查看项目

更新于 10-16 06:49

技能介绍

用途:在获得书面授权的安全评估、事件响应、定期审计或安全控制验证中,测试 GraphQL API 是否缺少查询深度限制,从而识别可导致拒绝服务的资源耗尽风险。

主要能力:利用 GraphQL 模式中的循环关系(如 User→Posts→Author→Posts)构造深层嵌套查询;通过别名放大、片段展开、字段重复和单请求批量查询放大资源消耗;使用 Python 3.8+ 与 requests 编写自动化脚本,逐级增加深度并记录状态码、响应时间、响应大小与错误信息,生成包含最大成功深度和风险等级的汇总报告。

必要用法:需目标 GraphQL 端点(启用 introspection 或已知模式)、GraphQL 客户端(GraphiQL、Altair、Insomnia 或 curl)、Python 3.8+ 与 requests、Burp Suite 或 mitmproxy 进行流量分析,并具备测试授权。脚本以端点 URL 为参数运行,默认测试深度 1 至 15,并测试别名放大。

适用场景:GraphQL API 安全评估、拒绝服务漏洞验证、安全控制有效性验证。

限制:仅限授权测试与教育用途,未经许可对非自有系统使用可能违法。资料未提供具体收费、平台支持范围或效果保证;实际结果取决于目标实现与配置。缓解措施包括使用 graphql-depth-limit 设置深度限制、graphql-query-complexity 进行复杂度分析、配置最大深度/复杂度/别名数/超时/批量大小/速率限制,并通过日志中异常深查询、响应时间激增、CPU/内存升高、递增复杂度请求和超大响应等指标进行检测。