【接口漏洞第八章第四节】GraphQL漏洞挖掘实战:找不到参数?用“内省”透视API底层

admin 2026-01-26 02:38:24 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了在GraphQL参数未知时利用内省查询获取API底层模式的方法。通过BurpSuite工具对常见端点发起内省或传统内省查询,可获取完整API参数及结构信息,辅助渗透测试人员进一步挖掘漏洞。操作步骤清晰,实战性强,适合安全人员学习。 综合评分: 88 文章分类: 渗透测试,WEB安全,漏洞分析,安全工具,SRC活动


cover_image

【接口漏洞第八章第四节】GraphQL漏洞挖掘实战:找不到参数?用“内省”透视API底层

原创

升斗安全XiuXiu 升斗安全XiuXiu

升斗安全

2026年1月23日 19:23 广东

【文章说明】

  • 目的:本文内容仅为网络安全技术研究与教育目的而创作。
  • 红线:严禁将本文知识用于任何未授权的非法活动。使用者必须遵守《网络安全法》等相关法律。
  • 责任:任何对本文技术的滥用所引发的后果自负,与本公众号及作者无关。
  • 免责:内容仅供参考,作者不对其准确性、完整性作任何担保。

阅读即代表您同意以上条款。

在上一节中【接口漏洞第八章第三节】下一个漏洞赏金:或许就藏在未净化的GraphQL参数里我们讲到了GraphQL参数 ,这里大家可能有个疑问,如果找到了 GraphQL api 端点,但不知道参数的话,要怎么才能做进一步挖掘呢?

别担心,今天我们就一起来看看如何对 GraphQL api 进行参数信息挖掘。

要找到可用参数,测试API的下一步就是发现、整合底层模式的相关信息。

这里最佳方法就是使用内省查询。内省是GraphQL的内置功能,允许我们向服务器查询模式信息。

内省有助于理解如何与GraphQL API进行交互,它也可能泄露潜在敏感数据,例如描述字段。

如何使用内省功能?

要通过内省发现模式信息,可以通过查询 __schema 字段。该字段在所有查询的根类型中都可用。

这个字段与常规查询类似,在运行内省查询时,您可以指定返回的响应字段和结构。例如,您可能希望响应仅包含可用变更操作的名称。

有点迷糊了?还是不知道怎么使用查询 __schema 字段进行内省查询?,接着看下面,我们通过结合burpsuite 工具来进一步理解:

首先,我们在浏览目标应用程序,查找对 GraphQL 端点的请求。

GraphQL 服务通常使用相似的端点后缀。请关注以下路径的查询:

  • /graphql
  • /api
  • /api/graphql
  • /graphql/api
  • /graphql/graphql

这些端点可能还包含版本号作为后缀,例如 /graphql/v1,通过以上请求,找到graphql api 端点【在【接口漏洞第八章第二节】挖掘GraphQL漏洞第一步:高效发现端口的三大实战技巧有提到过如何找到该端点】后,在burpsuite的历史请求接口中,右键单击 GraphQL api 端点的请求,然后选择发送到 Repeater。

在 Repeater 中,右键单击消息编辑器的 Request(请求) 面板中的任意位置,然后选择 GraphQL > 设置内省查询,将内省查询插入请求体中。

点击 Send(发送)。

如果启用了内省,服务器应在响应中返回 GraphQL API 的完整模式,具体如下:

成功的内省查询会返回 API 底层模式的详细信息,这些信息对用户和攻击者都有帮助【这里面可能就包含了我们一开始时想要找到的参数】。

以上介绍的内省查询适用于大多数 GraphQL 服务器。但如果使用的是较旧的 GraphQL 服务器,可能会失败。若出现这种情况,我们就在消息编辑器的 Request(请求) 面板中右键单击任意位置,然后选择 GraphQL > 设置传统内省查询,并重试,具体如下。

在消息编辑器的 Response(响应) 面板中右键单击任意位置,然后选择 GraphQL > 保存 GraphQL 查询至站点地图。

burpsuite在内省过程中发现的每个可用查询都将作为节点保存到站点地图中,我们就可以检查这些数据了。

通过以上操作后,我们就能掌握 GraphQL API 的大部分参数及内部信息了。今天我们就先分享到这里,关于如何利用通过以上方式获取到的信息,我们在后续章节会持续深入分享,感兴趣的可以点点关注。

觉得内容对你有用或无用,欢迎点赞或留言,这边会不断更正。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:升斗安全 升斗安全XiuXiu 升斗安全XiuXiu《【接口漏洞第八章第四节】GraphQL漏洞挖掘实战:找不到参数?用“内省”透视API底层》

评论:0   参与:  0