挖洞经验 | 用跨站搜索(XS-Search)在谷歌问题跟踪平台实现敏感信息获取
字数 1664 2025-08-18 11:37:49
跨站搜索攻击(XS-Search)在谷歌问题跟踪平台的应用与分析
1. 背景介绍
1.1 Monorail服务概述
Monorail是谷歌旗下用于Chromium浏览器项目的开源问题跟踪平台(Issue Tracker),具有以下特点:
- 云托管服务
- 自定义ACL问题和用户权限管理
- 组件和代码结构的相互映射
- 组件所有者具备特定权限
- 问题的自定义描述功能
- 多项目托管和问题在项目间的无缝对接
Monorail不仅用于Chromium项目,还被用于以下谷歌开源项目:
- Angle
- PDFium
- Gerrit
- V8
- 开放媒体联盟(Alliance for Open Media)
- 谷歌安全团队Project Zero的漏洞跟踪
2. 漏洞发现过程
2.1 CSV报告下载功能分析
Monorail提供查询结果的CSV格式报告下载功能,例如查询ID为911374和911375的问题:
https://bugs.chromium.org/p/chromium/issues/csv?can=1&q=id%3A911374%2C911375&colspec=ID
2.2 CSRF漏洞
研究发现高级搜索功能中存在CSRF漏洞:
- 可构造特定查询请求链接
- 无CSRF防护机制
- 示例构造的查询:
https://bugs.chromium.org/p/chromium/issues/csv?can=1&q=Restrict=View-SecurityTeam&colspec=ID
此查询可获取本应只有安全团队才能查看的内容(如ID为895735、877347和870573的条目)
2.3 结果列重复生成漏洞
在CSV报告中可任意增加结果生成列,例如:
https://bugs.chromium.org/p/chromium/issues/csv?can=1&q=id:51337&colspec=ID+Summary+Summary+Summary
此查询会生成包含3个Summary列的报告(原本只有1个)
3. 跨站搜索攻击(XS-Search Attack)原理
3.1 基本概念
跨站搜索攻击(XS-Search Attack)是一种类似边信道攻击的技术:
- 通过向目标站点发送搜索请求
- 结合特定搜索功能
- 根据响应时间差异(XS-Timing)判断服务端隐私信息
- 可绕过"同源策略"限制
3.2 攻击条件
在Monorail平台上实施XS-Search攻击需要两个条件:
- 执行复杂搜索查询的能力
- 扩展显示查询响应的能力(通过结果列重复生成漏洞实现)
3.3 攻击原理
通过构造不同的查询,观察响应时间差异:
- 构造"Summary: This bug exists"查询 - 生成大内容CSV报告
- 构造"Summary: This bug doesn't exist"查询 - 生成小内容CSV报告
- 构造"Summary: This bug exists OR Summary: This bug doesn't exist"查询 - 根据匹配情况生成不同大小的报告
3.4 具体实施步骤
- 选择查询目标:Chromium项目文件结构中的特定文件路径
https://cs.chromium.org/chromium/src/ - 使用OR连接符对不同路径进行查询,如:
src/blink OR src/build - 根据响应时间判断:
- 如果得到响应(大内容CSV),则限定在前半部分查询
- 如果无响应(小内容CSV),则限定在后半部分查询
- 重复上述过程,逐步缩小范围,最终定位到具体文件和漏洞报告
3.5 响应时间测量技术
使用Cache API来提高测量精度:
- 对同一响应进行多次缓存和测量
- 与空搜索响应结果比较
- 过滤硬件和网络差异
- 提高攻击速度和可靠性
4. 漏洞影响与修复
4.1 发现的漏洞
在Monorail服务中发现了三个可利用点,被分配了以下CVE编号:
- CVE-2018-10099
- CVE-2018-19334
- CVE-2018-19335
4.2 修复措施
谷歌已发布以下修复:
- 修复Monorail CSV文件下载中的CSRF漏洞
- 修复重复列生成漏洞
- 禁止使用double grid axes和Cc axis
- 防止通过groupby参数进行请求膨胀
5. 防御建议
- 实施严格的CSRF防护机制
- 对查询参数进行严格验证和过滤
- 限制查询结果的扩展能力
- 对敏感查询实施速率限制
- 考虑对响应时间差异进行模糊处理
6. 总结
本案例展示了如何利用Monorail平台的两个漏洞(CSRF和结果列重复生成)组合实施跨站搜索攻击,从而获取本应受限的漏洞报告信息。这种攻击方式强调了:
- 看似无害的功能可能被组合利用造成严重安全问题
- 响应时间分析可以成为信息泄露的渠道
- 对搜索功能的权限控制需要全面考虑各种潜在攻击向量