挖洞经验 | 发现Google Tez的XSS漏洞($3133.7)
字数 1767 2025-08-15 21:30:47
Google Tez DOM-based XSS漏洞分析与挖掘教程
漏洞概述
本教程详细分析Google Tez(现更名为Google Pay)中发现的一个DOM-based XSS漏洞,该漏洞通过referrer_id参数实现攻击,最终获得$3133.7的漏洞赏金。
漏洞关键信息
- 漏洞类型: DOM-based Cross-Site Scripting (XSS)
- 影响域名: tez.google.com (现为Google Pay)
- 漏洞参数:
referrer_id - 赏金金额: $3133.7
- 漏洞等级: 根据Google漏洞奖励计划,属于"客户端代码执行"类XSS漏洞
漏洞挖掘步骤详解
1. 子域名枚举
使用工具收集Google的子域名:
- Knock Subdomain Scan: 一款子域名枚举工具
- Sublist3r: 另一个流行的子域名发现工具
命令示例:
python knockpy.py google.com
sublist3r -d google.com
2. 目标识别
在收集到的子域名中,发现tez.google.com(Google的支付服务)存在潜在攻击面。
3. 参数分析
发现URL中包含referrer_id参数:
https://tez.google.com/?referrer_id=TEST_VALUE
使用Google搜索验证该参数的使用情况:
site:tez.google.com inurl:referrer_id=
4. 反射测试
验证referrer_id参数值是否反射到页面中:
- 访问
https://tez.google.com/?referrer_id=TEST123 - 检查页面源代码或DOM,确认
TEST123出现在页面中
5. XSS Payload构造
尝试插入基本的XSS测试payload:
https://tez.google.com/?referrer_id=<svg onload=confirm(document.domain)>
Payload分析:
<svg>: SVG HTML元素onload: 事件处理属性,当SVG加载时执行confirm(document.domain): 简单的JavaScript确认框,显示当前域名
6. 漏洞验证
访问构造的URL后,观察是否弹出包含tez.google.com的确认框,确认XSS执行成功。
漏洞原理分析
这是一个典型的DOM-based XSS漏洞,攻击流程如下:
- 用户访问包含恶意
referrer_id参数的URL - 网站JavaScript代码从URL中提取
referrer_id值 - 该值被不安全地插入到DOM中,未经过适当过滤或编码
- 浏览器解析插入的内容,执行其中的JavaScript代码
漏洞上报与处理
- 通过Google Vulnerability Reward Program (VRP)上报漏洞
- Google安全团队初步分类评估
- 数日后确认漏洞并确定赏金金额
- 漏洞修复后,研究者被列入Google名人堂致谢名单
漏洞赏金标准
根据Google漏洞奖励计划:
- 类别: 客户端代码执行 (XSS)
- 适用范围: 谷歌一般应用
- 标准赏金: $3133.7
防御措施
开发者可采取以下措施防止此类漏洞:
-
输入验证:
- 对
referrer_id等URL参数进行严格格式验证 - 使用白名单机制,只允许特定字符集
- 对
-
输出编码:
- 在将用户输入插入DOM前进行HTML实体编码
- 使用安全的DOM操作方法如
textContent而非innerHTML
-
内容安全策略(CSP):
- 实施严格的CSP策略,限制内联脚本执行
- 使用
nonce或hash机制允许可信脚本
-
框架保护:
- 使用现代框架如React、Angular或Vue,它们有内置的XSS防护
- 避免直接操作DOM
经验总结
- 子域名枚举是发现新攻击面的有效方法
- URL参数是常见的XSS攻击向量,应重点测试
- Google搜索技巧能快速验证参数的使用情况
- 简单的测试payload往往能发现严重漏洞
- 大公司的小型服务也可能存在高价值漏洞
扩展练习
读者可尝试以下练习加深理解:
- 使用类似方法测试其他Google服务的子域名
- 尝试构造更复杂的XSS payload,绕过可能的过滤
- 研究DOM-based XSS的其他常见来源(如
location.hash、document.write等) - 搭建本地测试环境,模拟此类漏洞并实践防御措施
通过本案例的学习,安全研究人员可以掌握基本的DOM-based XSS挖掘技巧,了解大公司的漏洞奖励流程,并提高自身的安全研究能力。