主页 > 网络知识 > 劫持Google Data Studio的共享报告链接

劫持Google Data Studio的共享报告链接

 

劫持Google Data Studio的共享报告链接

 

这篇Writeup介绍了谷歌数据报表平台Google Data Studio中的一个授权漏洞,作者利用该漏洞可以修改其他人分享的报告链接,实现对他人报告的劫持。

漏洞介绍

Google Data Studio是谷歌的可视化报告处理平台,要发现授权漏洞需要了解目标应用的具体工作机制,为此我花了一些时间去熟悉Google Data Studio。首先,我创建了一份空白报告,如下:

 

劫持Google Data Studio的共享报告链接

 

 

劫持Google Data Studio的共享报告链接

 

点击报告中的“共享”(Share)按钮右边的向下小箭头,会跳出一些功能选项,我们点击图中红框中的“获取报告链接”按钮,就能生成一个报告链接。

 

劫持Google Data Studio的共享报告链接

 

该报告链接是一个datastudio.google.com加随机字符串的样式,点击下方的“链接到当前报告的数据视图”(Link go your current report view),就会向datastudio.google.com服务端发送一个网络请求,如下:

 

劫持Google Data Studio的共享报告链接

 

我们用Burp来进行抓包,内容如下:

 

劫持Google Data Studio的共享报告链接

 

仔细观察其中的POST请求,可以发现其荐在两个参数,一个是reportId,另一个是shortLink里面的id:

reportId : 87d41ef9–1ebc-4d92–84e7-d5948e5940ed

id : m7PKn-j4R_s

起初看上去,id参数可能是我点击“链接到当前报告的数据视图”(Link go your current report view)后生成的报告id,我想看看如果用其它随机值替换它会是什么样,为此,在reportId不变为87d41ef9–1ebc-4d92–84e7-d5948e5940ed的情况下,我把id参数换为“iamsushi”,然后提交请求:

 

劫持Google Data Studio的共享报告链接

 

之后,我访问https://datastudio.google.com/s/iamsushi链接,它竟然能成功跳转到了之前reportId为87d41ef9–1ebc-4d92–84e7-d5948e5940ed的报告来。默认来说,普通用户是无权访问特定报告的,除非在分享中有所指定。所以,照着这个思路,我想如果某报告已经由Google Data Studio分配了一个id参数和reportId参数,那么,我是否能在reportId参数不变的情况下,对其id参数实施变换,修改成其它值呢?

非常意外,这种方法可以成功修改我另一个Google Data Studio账号创建的报告,POST请求后,服务端也响应回来了200的状态码。这一修改之后,我另一Google Data Studio账号创建的报告其最终链接中的id参数被覆盖,变成了其它链接。而本来的情况是,该报告是禁止下载和可读的。如下:

 

劫持Google Data Studio的共享报告链接

 

所以,这里的攻击思路是,我创建自己的报告,生成https://datastudio.google.com/s/XXXX的报告链接,然后通过Google Dork方式查找一些在线的,曝露shortlinks中id参数的其他人报告,接下来,就把其他人的报告id参数更改成我自己的报告id参数XXXX,这样一来,如果用户访问其他人的报告也就会指向了我的报告,实现对他人报告的劫持。

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!