谷歌论坛的越权漏洞(500美金)

iso60001  2066天前

22.png

最近,我一直在测试谷歌的服务,到处寻找安全漏洞,最终找到了一些非常有意思的漏洞。在整个挖掘漏洞过程中,我的心就像坐过山车一样,既有发现漏洞的高兴,也有漏洞被拒绝时的失落。而在这篇文章中,我将介绍一个简单但有趣的谷歌论坛的授权绕过漏洞(这让我得到了500美元的赏金)。

First:GWT(Google Web Toolkit)

你听说过Google Web Toolkit(GWT)吗?我不得不承认,尽管这并不是什么先进的技术(事实上,它早在2006年就出现了,并在2013年成为开源项目),但在我开始测试谷歌的服务之前,我从来没有真正接触过它。

百度百科-Google Web Toolkit(GWT Web Toolkit,简写:GWT),是一种允许开发人员使用 Java 编程语言快速构建和维护复杂但性能高的 javascript 前端应用程序的工具集,能够降低开发难度。有了 GWT可以使用 Java 编程语言编写 AJAX 前端,然后 GWT 会交叉编译到优化的javascript 中。

当第一次看到GWT的HTTP请求时,它们看起来很与众不同。乍一看,甚至像乱码。示例如下:

33.png

幸运的是,如今关于GWT的安全研究已经有很多,我勉强能看懂一些请求含义。

类枚举

现在让我们了解一下到谷歌论坛(Google Groups)。如果你以前从来没有用过这个服务,那么你可以把它简单理解成一个论坛平台。你可以创建自己的论坛或者说组,邀请参与者讨论主题,并管理论坛的权限,决定谁能查看/更新论坛(组)的不同分区。而且,正如你所料,谷歌论坛是用GWT构建的。

一般来说,我在测试GWT请求时,不会弄乱请求的签名位(就是请求的最开始和最末端用管道符分隔的数字),而是对某些参数进行测试。

我很快找到了一个敏感参数。在下面的GWT请求中,我发现方框里的数字代表服务器端的特定类:

44.png

数字“4”指向“AbstractSearchKey”类

55.png

数字“8”指向“Shared.Categoty”类

因此,我用Burp来暴力破解出所有类的名字:

66.png

虽然这本身不是一个巨大的安全问题(我已经向谷歌报告了这个问题,谷歌认为它是“低风险的”),但它给了我继续前进的动力,我觉得谷歌论坛的GWT实现一定存在安全缺陷。

查看其他组的数据

再次出发,我查看了捕捉到的所有GWT请求。发现在其中一个请求中有一个字符串是我创建的测试组的名字:

77.png

是的,这个“testestest…”就是我能想到的最好的名字。

而在这个请求的回复中,包括组的基本信息,例如组的电子邮件、主题和描述。OK,那么,我只能查看我自己创建的组的信息吗?

我很快用第二个google帐户创建了一个新组(将所有权限设置为“private”,即只允许受邀用户查看该组的任何内容),然后我再用第一个帐户查询这个新组的信息。结果我能够看到一些敏感信息,成功发现了一个越权漏洞:

88.png

设置为“private”的数据即使不是组成员也可以看到

可惜的是,我无法看到组成员的对话,但只能看到组的电子邮件和描述。不过,这是我第一次发现GWT的漏洞,也许说明了它其他编程方式一样存在漏洞。

时间线

  • 1月21日——提交漏洞报告给谷歌
  • 1月21日——漏洞确认中
  • 1月24日——漏洞确认
  • 2月5日——发放500美元奖金
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://www.komodosec.com/post/google-groups-authorization-bypass

最新评论

昵称
邮箱
提交评论