白帽故事 · 2024年12月30日 0

意外发现谷歌Slides越权漏洞,获得赏金$3133.70的故事

背景介绍

某一天悠闲的午后,白帽小哥Atikqur坐在办公桌前,在 Google Slides 上准备着一场活动的演讲稿。

幻灯片准备好后,开始点击演示者视图来预览它们,由于白帽小哥想与观众进行现场问答环节,因此他开始在网上搜索 Google Slides 是否有此类功能。

就在此时,偶然间发现了“观众工具”这项功能,要启用该功能的话,需要进入演示者视图,然后点击观众工具,然后点击“开始”。

file

漏洞发现

开始会议后,你会收到一个链接,观众可以在你演示时使用该链接实时提出问题。

file

好奇之下,白帽小哥复制了链接并在 Chrome 的无痕模式下打开,以探索观众如何进行提问。

原来任何人都可以提问,并且无需登录!问题框的用户界面看起来有点过时,于是小哥的漏洞挖掘本能被成功“激活”…

file

没有片刻犹豫,启动 Burp Suite 开始抓包,小哥注意到每次有人问问题时,POST 请求中都会包含一个唯一的 clientId。

POST /presentation/d/e/2QANgcCBH8YIx_f5yfCz0l5len6p5BDFsiROx_rcqbOqYgcByotn7pOpaS3kXb3YYffwepoOXCyzanE8ZCIw/submitquestion?includes_info_params=1 HTTP/1.1
Host: docs.google.com
Cookie: 
Content-Length: 84
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Accept: */*
Origin: https://docs.google.com
Referer: https://docs.google.com/presentation/d/e/2QANgcCBH8YIx_f5yfCz0l5len6p5BDFsiROx_rcqbOqYgcByotn7pOpaS3kXb3YYffwepoOXCyzanE8ZCIw/askquestion?seriesId=d90df436-a253-48a1-8aea-bf5c19761447
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Priority: u=1, i
Connection: keep-alive

seriesId=d90df436-a253-48a1-8aea-bf5c19761447&clientId=e5j7slqfku2&questionText=Test

因此每一条提问都有一个唯一的clientId ——这可能会存在一个潜在的漏洞!

file

任何人点击链接,所有问题都会加载带有唯一 clientId 的提问。

file

白帽小哥立即明白了这里可能存在什么样的BUG,小哥登录了两个不同的帐户,并从帐户 1 提交了一个问题“Test”。

然后,在另一个浏览器中使用 account-2,复制了 account-1 提问的 clientId,然后拦截account-2提交问题时的请求,然后将其clientId替换为account-1的clientId。

file

账户-1 提交的问题成功地被账户-2 的请求修改了,更关键的是,这甚至可以在不登录的情况下被利用。

file

小哥立即向谷歌报告了此事,谷歌第二天就关闭了该报告,并称安全风险极小(不予修复)。

file

但小哥知道这个漏洞的影响是明显的:无需用户交互即可利用它,也无需猜测或暴力破解 clientId,因为应用程序本身就提供了 clientId。

小哥礼貌地重申了关于该漏洞的观点,谷歌重新打开了问题并确认了它,然而十天后,报告再次被关闭,理由是由于“猜测”clientId,安全风险仍然很低。

file

小哥有些失望,猜测谷歌的安全团队并没有正确测试该漏洞,甚至他们可能都没有查看小哥提供的 PoC 演示视频,因为clientId是由应用程序本身自动加载的,因此根本没有必要去猜测clientId。

白帽小哥再次解释了这一点,并展示了攻击者如何毫不费力地提取clientId,最终谷歌的安全团队复现了该漏洞,并承认了漏洞影响,最终按照 S2 严重性类别奖励了小哥 3133.70 美元。

file

感谢阅读,以上内容由骨哥翻译并整理。

原文:https://medium.com/@atikqur007/how-i-accidentally-found-an-idor-bug-in-google-slides-and-rewarded-3-133-70-96866fac3af1