G套件环聊聊天室5k IDOR漏洞分析

本文详细分析了在Gsuite Hangouts Chat中发现的一个IDOR漏洞,攻击者可通过操纵聊天室和机器人webhook的ID,未经授权删除、编辑或添加任意聊天室的机器人webhook,实现消息发送等恶意操作。

G套件环聊聊天室5k IDOR漏洞分析

大家好,

正如大多数人应该看到的,Google VRP已经开始进行"每周漏洞"推广活动。我提交的一个漏洞被选为本周的亮点,所以这里为大家带来详细分析。

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

背景介绍

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

测试过程

我设置了Gsuite账户并访问了chat.google.com。这是一个聊天区域,因此XSS是我首先测试的内容。我没有发现任何相关问题,但也许其他人发现了;)。

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

漏洞发现

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

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

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