Gsuite Hangouts聊天平台IDOR漏洞挖掘详解

本文详细介绍了在Gsuite Hangouts Chat平台发现的IDOR漏洞,攻击者可通过操纵webhook ID未经授权删除、修改或添加任意聊天室的机器人webhook,实现消息发送等恶意操作。

Gsuite Hangouts Chat 5k IDOR

大家好,

正如大多数人应该看到的,Google VRP已经开始进行每周漏洞推广活动。我提交的一个漏洞被选为本周的亮点,所以现在与大家分享。

这是关于我在三月份发现的影响chat.google.com的IDOR漏洞的分析报告。

三月份,在浏览Twitter后,我注意到Google Chat成为热门话题。我立即认为这是一个正在推广的新产品,并开始阅读一些相关帖子。经过研究,发现这是为Gsuite客户及其用户提供的团队协作聊天室,供他们相互发送消息。就像大多数漏洞猎人一样,当你看到新产品推出时,就是时候去测试它了。

然后我设置了Gsuite账户并访问了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&

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

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 设计