1. Bruteforcing the phone number of any Google user (brutecat.com)
本文描述了作者发现并利用Google用户名恢复表单的一个安全漏洞,该表单在禁用JavaScript时仍可运行,从而绕过反滥用保护机制。核心攻击链涉及三个步骤:通过Looker Studio泄露目标用户的显示名,利用忘记密码流程获取部分手机号掩码,并使用自定义工具暴力破解完整号码。
漏洞细节
- 端点分析:用户名恢复表单通过两个POST请求验证手机号与显示名的关联。第一个请求提交手机号,获取
ess令牌;第二个请求结合ess、显示名和bgresponse参数,通过重定向判断账户是否存在。 - 绕过限流:作者最初尝试用IPv6地址池轮换IP绕过IP速率限制,但数据中心IP始终触发验证码。后来发现将
bgresponse=js_disabled替换为JavaScript版本表单生成的BotGuard令牌后,无需验证码且无请求限制,漏洞得以利用。 - 攻击优化:
- 手机号掩码:通过
forgot password流程获取目标手机的部分数字(如末两位),结合国家代码缩小暴力范围。 - 显示名泄露:Google在2024年后移除了未认证场景的显示名,但作者发现通过Looker Studio转让文档所有权,无需受害者交互即可泄露其显示名。
- 工具实现:作者开发了
gpb工具,支持IPv6轮换、实时号码验证和BotGuard令牌生成,暴力破解速度可达约4万次/秒。
- 手机号掩码:通过
攻击可行性
- 不同国家手机号的暴力时间差异显著:如美国(+1)需20分钟,新加坡(+65)仅需5秒(基于末两位掩码)。
- 若从其他服务(如PayPal)获取更多数字掩码,可大幅减少破解时间。
漏洞修复与时间线
- 报告流程:2025年4月14日提交报告,厂商于4月15日分类确认,5月15日初始奖励1,337美元。作者根据滥用漏洞规则申诉后,厂商于5月22日将奖励增至5,000美元,并部署临时缓解措施。
- 修复:厂商于6月6日全球弃用No-JS用户名恢复表单,彻底消除漏洞。
该漏洞虽利用概率较低,但无需受害者交互且难以察觉,属于高影响滥用漏洞。作者通过技术细节展示了如何结合信息泄露、参数篡改和大规模计算实现目标手机号爆破。