挖洞经验 | 劫持Google Data Studio的共享报告链接
字数 1173 2025-08-18 11:39:30
Google Data Studio 共享报告链接劫持漏洞分析
漏洞概述
本教学文档详细分析Google Data Studio平台中存在的一个授权漏洞,该漏洞允许攻击者修改他人分享的报告链接,实现对他人报告的劫持。
漏洞发现过程
1. 初始观察
- 创建空白报告后,通过"共享"→"获取报告链接"生成报告链接
- 链接格式为:
datastudio.google.com/[随机字符串] - 点击"链接到当前报告的数据视图"会向服务端发送请求
2. 请求分析
使用Burp抓包发现POST请求包含两个关键参数:
reportId: 如87d41ef9-1ebc-4d92-84e7-d5948e5940edshortLink中的id: 如m7PKn-j4R_s
3. 参数篡改测试
-
修改id参数:
- 保持
reportId不变,将id改为随机值(如"iamsushi") - 访问
https://datastudio.google.com/s/iamsushi成功跳转到原报告 - 表明
id参数可被任意修改而不影响报告访问
- 保持
-
跨账号测试:
- 使用另一Google账号创建的报告
- 修改其
id参数为自定义值 - 成功覆盖原链接,使原链接指向攻击者控制的报告
-
reportId参数测试:
- 修改
reportId首位数字(8→7)导致500错误 - 但替换为其他有效
reportId可成功响应
- 修改
攻击利用方法
- 攻击者创建自己的报告,生成如
https://datastudio.google.com/s/XXXX的链接 - 通过Google Dork搜索公开的、暴露
shortlinks中id参数的报告 - 将他人报告的
id参数修改为XXXX - 当用户访问原报告链接时,将被重定向到攻击者的报告
漏洞原理
该漏洞属于IDOR(Insecure Direct Object Reference)类型,服务端未对以下操作进行充分授权验证:
- 修改
id参数时未验证用户是否有权修改目标报告 - 链接生成机制允许任意用户覆盖已存在的短链接
防御建议
- 服务端应验证用户对目标报告的所有权或修改权限
- 实现短链接与报告所有者的绑定机制
- 对敏感操作实施CSRF防护
- 增加操作日志记录和异常检测
经验总结
- 测试前充分了解目标应用的工作机制
- 保持探索心态,反复测试可疑行为
- 从防御者角度思考可能的突破点
- 关注服务端响应中的潜在信息
- 记录和思考开发者可能忽视的用户操作路径
- 全面评估漏洞的实际危害性
漏洞处理时间线
- 2019.12.5: 初次提交,谷歌无法复现
- 2019.12.5: 提供详细漏洞信息
- 2019.12.14: 漏洞被分类为P2级别
该漏洞展示了即使是在Google这样的顶级科技公司产品中,也可能存在简单的授权缺陷,强调了全面安全测试的重要性。