api漏洞测试-GraphQL自省问题

api漏洞测试-GraphQL自省问题

原创 zuriel 迪哥讲事 2024-10-20 23:56

api漏洞测试-GraphQL自省问题

正文

正常情况下的请求:在生产环境中,开发者通常会禁用自省查询功能,只允许有限的、明确授权的查询。例如,用户只被允许查询他们自己账户的信息,无法访问其他用户的信息。

示例(正常请求):

{
  user(handle: "john_doe") {
    id
    name
    email
  }
}



这个请求只会返回授权用户的信息,开发者可以通过权限控制和验证来确保用户不能访问其他用户的数据。

受到攻击后的请求:如果自省查询未被禁用,攻击者可以使用自省查询来获得整个 schema,然后构建出未授权的查询,从而访问敏感数据。

攻击示例:首先,攻击者使用自省查询获取整个 schema 信息

使用下面链接中的payLoad进行查询

https://gist.github.com/craigbeck/b90915d49fda19d5b2b17ead14dcd6da

获得 schema 信息后,攻击者知道了有一个 “team” 节点,即使这个节点已被标记为弃用,攻击者仍然可以通过构建如下的查询来访问:


{
  team(handle: "security") {
    id
    about
    base_bounty
    bug_count
    sla_failed_count
    sla_missed_count
  }
}


通过这种方式,攻击者可以访问本应禁止访问的团队信息,甚至获得未公开的字段,如 “sla_failed_count”。

更多请看星球

往期回顾

一款bp神器

ssrf绕过新思路

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips

参考

https://hackerone.com/reports/291531