freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Grahql查询漏洞所引起的敏感信息泄露
白帽汇 2019-09-03 18:50:44 203018

22.png

大家好,我是Pratik Yadav,目前在Crypto Buying Site担任安全工程师(同时我也是计算机工程专业的大四学生),很感谢公司给我提供了一份全职工作,即使我还没有完全毕业。

漏洞详情

为了发现这个漏洞,我花了不少时间学习graphql基础知识,并阅读了可以找到的所有漏洞报告。在某次渗透测试的过程中,当我检查目标的子域时,我发现其中一个子域stg.target.com使用了graphql而不是Rest-API

你可以在这里阅读更多关于graphql的信息。简单来说,GraphQL是一种用于API的查询语言,GraphQL对你的API中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,一个请求就可获得多个指定资源,目前已有大量国际公司使用该语言构建自己的网站。

33.png

需要说明的是,在我这个案例中,用户可通过目标应用转账给他们的家人或朋友或任何用户。而我发现的这个漏洞只需要受害者的电子邮件地址即可触发。

漏洞发现流程

1.首先,我通过Burp的代理时刻监控数据流,并尽量执行所有敏感操作,比如将钱从一个帐户发送到另一个帐户。

2.在检查了所有敏感操作的相关请求后,我的注意力还是集中到转移钱的请求上。

3.在转移钱之前,应用会先验证目标用户是否已经是注册用户,这是通过Graphql查询实现的。

44.jpg

4.从上面的截图的请求回应中可以看出,有一个__typename:Auth_User字段。

5.因此,思考一段时间后,我决定找到涉及__typename:Auth_user的所有字段。

6.利用我所学习的graphql知识,我构建了如下查询语句,它会找出所有的typename和相关字段值。

https://api.stg.target.com/graphq?query={__schema{types{name,fields{name}}}}

55.jpg

所以我检查了typename:Auth_user的所有字段,注意到其中两个字段addressLine1addressLine2,貌似是很敏感的信息。

7.因此,我替换了原始请求中的status,使用了addressLine1代替,然后正如预期的那样,服务器返回了测试帐户地址。

66.jpg

因此,只要电子邮件地址,你就可以窃取任何人的任何敏感信息

类似地,我用balancewallet_address等一系列敏感字段进行了替换,均返回了其他用户的敏感信息。

披露流程

1.我大约在凌晨1点(印度标准时间)向他们报到了漏洞。

2.他们在看到了我提供的视频证据后,立即下线了该子域名。

3.最后,他们给了我四位数美元的奖金(这是我目前得到的最高奖金)。

感谢你的阅读!

参考:https://graphql.cn/learn/

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场:https://nosec.org/home/detail/2922.html
来源:https://medium.com/@pratiky054/graphql-bug-to-steal-anyones-address-fc34f0374417
# 漏洞
本文为 白帽汇 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
白帽汇
相关推荐
白帽汇 LV.4
北京白帽汇科技有限公司
  • 248 文章数
  • 70 关注者
SRVLOC协议与端口扫描
2021-12-07
基于Docker的固件模拟
2020-05-20
第四期 |“有趣”的FOFA
2020-03-19
文章目录