文章总结: 文章聚焦GraphQL端点发现,提出三大实战技巧:利用query{__typename}通用查询触发特征响应、枚举/graphql等常见路径及v1后缀、交替POST/GET与Content-Type测试,结合Burp自动扫描与浏览器流量回放,为后续漏洞挖掘奠基 综合评分: 78 文章分类: WEB安全,渗透测试,安全工具,实战经验,漏洞分析
【接口漏洞第八章第二节】挖掘GraphQL漏洞第一步:高效发现端口的三大实战技巧
原创
升斗安全XiuXiu 升斗安全XiuXiu
升斗安全
2026年1月21日 18:44 广东
【文章说明】
- 目的:本文内容仅为网络安全技术研究与教育目的而创作。
- 红线:严禁将本文知识用于任何未授权的非法活动。使用者必须遵守《网络安全法》等相关法律。
- 责任:任何对本文技术的滥用所引发的后果自负,与本公众号及作者无关。
- 免责:内容仅供参考,作者不对其准确性、完整性作任何担保。
阅读即代表您同意以上条款。
上一节【接口漏洞第八章第一节】挖洞前必修课:一文读懂GraphQL API核心概念中,我们大概了解了GraphQL API的相关概念,今天我们来进一步了解下,如何寻找GraphQL端点
在测试GraphQL API之前,首先需要找到其端点。由于 GraphQL API 所有请求都使用同一端点,因此这一信息非常关键。
注意:我们在这里介绍的是如何手动探测GraphQL端点。但 BurpSuite 工具的 Scanner 在扫描过程中可自动测试 GraphQL 端点,若发现此类端点,工具就会报告“发现GraphQL端点”问题。如下,就是工具自动发现的端点。
通过通用查询来查找端点:
如果向任意GraphQL端点发送查询 query{__typename},其响应中某处会包含字符串 {“data”: {“__typename”: “query”}}。这称为“通用查询”,这是是探测某URL是否对应GraphQL服务的实用方法。
此查询之所以有效,是因为每个GraphQL端点都有一个保留字段 __typename,该字段会以字符串形式返回被查询对象的类型。
通过常见端点命名来查找端点:
GraphQL服务常使用相似的端点后缀。测试GraphQL端点时,可尝试向以下位置发送通用查询:
- /graphql
- /api
- /api/graphql
- /graphql/api
- /graphql/graphql
如果这些常见端点未返回GraphQL响应,还可尝试在路径后追加 /v1。
注意:
GraphQL服务常对任何非GraphQL请求返回“查询不存在”或类似错误。测试端点时请记住这一点。
通过不同的请求方法来查找端点:
尝试使用不同请求方法也是寻找GraphQL端点的一种方式
通常情况下 GraphQL 端点最佳做法是仅接受 content-type 为 application/json 的 POST 请求,这有助于防范CSRF漏洞。但有些端点可能接受其他方法,例如 GET 请求或使用 x-www-form-urlencoded 作为 content-type 的 POST 请求。
如果通过向常见端点发送POST请求未能找到GraphQL端点,可尝试使用其他HTTP方法重新发送通用查询。
通过以上方式后,一旦发现端点,我们就可以发送一些测试请求以进一步了解其工作原理。如果该端点支撑着某个网站,可尝试在浏览器中探索该Web界面,并通过HTTP历史记录检查发送的查询,并进一步挖掘 GraphQL API 相关漏洞。更加详细的挖掘方式和思路,我们在后续章节中,会陆续分享。
今天的内容就先分享到这,对这块感兴趣的话,可以点点关注,这边会持续输出相关分享内容。
觉得内容对你有用或无用,欢迎点赞或留言,这边会不断更正。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:升斗安全 升斗安全XiuXiu 升斗安全XiuXiu《【接口漏洞第八章第二节】挖掘GraphQL漏洞第一步:高效发现端口的三大实战技巧》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论