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”。
更多请看星球
往期回顾
参考
https://hackerone.com/reports/291531