用AI搞GoogleVRP赚了50万美金

admin 2026-08-28 04:56:53 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了安全研究员利用Claude和MCP工具自动化扫描Google的1500多个API,通过收集APIKey、逆向FPAv2等方式,在三个月内发现约27个漏洞并累计获得50万美金赏金。核心发现包括staging环境指向生产数据、授权检查缺失、顺序ID可遍历等常见安全问题。可操作建议是关注staging环境的安全配置和授权检查。 综合评分: 95 文章分类: 红队,AI安全,漏洞分析,实战经验,渗透测试


用 AI 搞 Google VRP 赚了50万美金

原创

tonghuaroot tonghuaroot

RedTeam

2026年8月27日 18:52 日本

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

Brutecat 之前写过「Decoding Google」和「Google Cloud RCE」,算是专门薅 Google VRP 的老手了。这次他和 Michael Dalton 搞了个大的:给 Claude 配上 MCP ,对着 Google 的 1,500+个 API 挨个戳,三个月薅了 50 万美金。

文章巨长,这里挑重点说。

怎么找到 1,500 个 API 的

Google 的 API 有个叫 Discovery Document 的东西,相当于 API 的说明书,告诉你有哪些 endpoint、接受什么参数、返回什么格式。2025 年 7 月 Google 把 /$discovery/rest 这个路径砍了,但 Arvin 找到了别的途径拿到这些文档。

关键操作是加 visibility label。Discovery Document 支持一个 label 参数,填上 GOOGLE_INTERNAL 之类的标签,响应直接从 253KB 涨到 329KB。多出来的 76KB 就是对外隐藏的内部 endpoint。

Key 从哪来

3,600 个 Google API Key,收集方式相当暴力:

  • 从 APKMirror 爬了 61,200 个 Android APK,里面硬编码的 Key 直接提
  • 写 Chrome 扩展用 Debugger API 拦截 2,800+个 Google 域名的流量抓 Key
  • 解密 Google 的 iOS IPA 分析二进制
  • 扫 Certificate Transparency Log 找更多域名
  • 关键词暴力拼域名

拿到 Key 之后用 Cloud Marketplace API 验证归属,错误信息里会返回 project number,借此筛出哪些 Key 是 google.com 自己项目的。

然后就是排列组合:每个 Key x 每个 Label x 每个 API,全部过一遍。

FPA v2 逆向

Michael 发现 Google 在 android-review.googlesource.com 上泄漏了 gapix 库的 sourcemap。有了源码就好办了,直接逆出来 First Party Authentication v2 的实现。

Token 格式:<timestamp>_<sha1_hash>_<identifier_keys>

SHA1 的输入是用户标识符+时间戳+session cookie+origin header 的拼接。用户标识符支持三种:e(邮箱)、u(混淆 Gaia ID)、a(Workspace 域名)。

比较好玩的是 token 里可以塞任意字符串,比如 <timestamp>_<hash>_googlesauthteamhatesthisoneweirdtrick 也能过验证。

Claude + MCP 的坑

给 Claude 配 MCP 工具扫 API 这个思路没问题,但落地踩了不少坑。

第一版只给了两个 tool:probe_api 和 report_vulnerability。直接把大段 JSON dump 进 context,几轮对话就爆了。而且 Claude 会在没扫完所有 endpoint 的情况下宣布”测试完成”,还会对那些又臭又长的 endpoint 名字产生幻觉,比如把 autopush_cloudcrmcards_pa_sandbox 记成别的东西。

改了好几轮:

  • 让 Claude 先把 endpoint 按功能分组,按组测试,组间共享发现,不然 context 撑不住
  • 加了 confirm_testing_complete(),强制每个 endpoint 至少 probe 一次才能喊完
  • probe_api 自动拿所有 Key 发请求,响应按 hash 去重,只展示有差异的结果
  • 简化 endpoint 名字,砍掉冗长前缀
  • 加了 get_endpoint_schema,在碰 scope 外的 endpoint 之前必须先调用

System prompt 里写了严格的过滤规则:500 错误不报、401/403/404 不报、400 参数错误不报、200 但没泄漏实际数据不报、存在性枚举永远不报。严重性从 DEBUG 到 CRITICAL 分级。

Google API 的错误信息很晦涩,他还做了标准化映射,比如”Method not found”的 JSON 其实是 MISSING_REQUIRED_VISIBILITY_LABEL,不是真的找不到方法。不做这个映射 Claude 会被绕晕。

另外还自建了一个 API Explorer,能从 Discovery Document 自动构造请求,有 UI 可以点 Play 直接测试看请求响应。主要目的是防止 Claude 在验证漏洞的时候编故事。

挖到了什么

挑几个说。

Google Voice 账户接管 $20,000

gfibervoice-pa.googleapis.com 的端点压根不做认证。一行 curl 拿到任意用户的电话号码和恢复电话:

curl&nbsp;'https://gfibervoice-pa.googleapis.com/\
&nbsp;v1/BssGetVoiceSettings?gaiaId=786575234861'&nbsp;\
&nbsp;-H&nbsp;'X-Goog-Api-Key: AIzaSy...'

Gaia ID 是顺序递增的,可以批量遍历。更要命的是还能给任意账户分配电话号码。

修补之后这个域名开始重定向到 /statusz,又暴露了 zhandler endpoint,泄漏了 Borg 集群元数据。修了一个漏出两个。

AdExchange 接管 $30,000

测试环境 test-adexchangebuyer-googleapis.sandbox.google.com 指向生产数据,买家/用户端点零访问控制。可以把自己加为任意广告账户的管理员,顺便泄漏所有账户的联系邮箱。

Eldar 隐私系统 $26,674

Google 内部的隐私请求管理系统。前端有 UberProxy 保护,但公共 API 端点 eldar-pa.clients6.google.com 完全敞开,能看能建隐私评估,包括内部日志访问请求和合规文档。

Google 几小时内就修了。然后 Arvin 发现通过 sandbox 域名 autopush-eldar-pa-googleapis.sandbox.google.com 还是能访问,因为 *.corp.google.com 的 origin 白名单接受这个域名。又报了一次。

YouTube 未列出视频 $12,000

Content ID API 的资产命名规则是 Auto generated asset - <video_id>。模式匹配一下就能拿到视频 ID,用来看 YouTube 合作伙伴的未列出/私有视频。

Arvin 提了一嘴说这在 Polymarket 之类的预测市场上能玩内幕交易,比公众早几小时看到即将发布的视频内容。

Widevine DRM $16,004.40

能列出所有 Widevine 组织,获取加密签名密钥(而且有对应的解密端点),给任意 content owner 组织加用户,访问设备管理门户。DRM 这东西被搞穿影响面还是挺大的。

PLX 内部分析 $24,000

DataHub staging 环境暴露 YouTube 分析表。setIamPolicy 端点没有授权检查,改完 IAM 策略就能访问 1,592 个表,PB 级的 YouTube 货币化数据。Google 不到一小时就接了 P0/S0,但最终确认只有 staging 受影响。

Nest 设备去匿名化

两个独立漏洞拼成完整链条:

  1. Nest ID 顺序枚举返回未混淆的 Gaia ID
  2. Play Books License API 把 Gaia ID 转成邮箱

知道一个 Nest 设备 → 设备主人的 Gaia ID → 主人的邮箱。所有 Nest 用户都可以被去匿名化。

Translation Hub $36,500

一口气找了好几个问题。ListOperations 未认证泄漏服务账户名和 GCS bucket。跨租户能读翻译器组的元数据。UpdateProjectConfig 没有授权检查。

GCS 外传的手法比较巧:PATCH UpdateProjectConfig,把 projectLogoGcsSource 指向受害者的私有 GCS 路径,共享 SA 会去读那个文件,响应里直接返回 base64 内容。相当于借刀杀人。

YouTube TV CMS $24,000

Campaign 的 CRUD 操作没有访问控制,可以读改复制删除任意 campaign,同时泄漏 CMS 账户邮箱。

Vertex AI Search Prompt Injection $30,000

conversationalSearchCustomizationConfig 端点不设防。能读受害者的 model preamble 和 blocklist 关键词,能写入任意 prompt injection,能改零售商展示名。这个比较有意思,是对 AI 系统本身的攻击。

Cloud Console GraphQL 签名绕过

Staging 环境没开 query 签名验证,可以跑未认证的 introspection query,构造任意 GraphQL 请求。生产环境没这个问题。

反复出来的 pattern

看完所有漏洞会发现就那么几种套路在重复:

Staging 指向 Production 数据。AdExchange、Eldar、PLX DataHub、Translation Hub 全是这个问题。Google staging 环境多得数不过来,很多直接连着生产库但安全控制弱得多。

授权检查缺失。内部 API 从内网挪到公网的时候忘了加权限校验。setIamPolicyUpdateProjectConfig 这种操作居然不需要授权。

顺序 ID 可遍历。Gaia ID、Nest ID 都是顺序递增的。一旦某个 endpoint 接受这些 ID 作为输入又不查权限,就是批量数据泄漏。

共享 SA 权限过大。多租户场景下共享的 service account 经常有不该有的权限。Translation Hub 的图片拉取功能用了一个共享 SA,这个 SA 能读其他租户的 GCS。

Visibility Label 绕过。请求里加不同的 label 就能看到隐藏的内部 endpoint。Label 本身没有被正确限制。

Origin 白名单太宽。*.corp.google.com 被很多内部系统全局接受。

披露和响应

Arvin 的策略是发现一个报一个,不攒着。Google VRP 对 P0/S0 级别的问题几小时内就会接受。Eldar 修得最快,DataHub 不到一小时就接了。

但修补质量参差不齐。多次发现第一轮修补不完整:Eldar 通过 sandbox 域名还能访问,Google Voice 修完暴露了 zhandler。所以每次修补后都要回去再查一遍。

时间线

  • 2025.7:Google 砍掉 /$discovery/rest 路径
  • 2025.10:bugSWAT Mexico(Google 的安全会议,给参会者源码访问权限)的邀请让 Arvin 重新关注 Google
  • 2025.10-2026.1:收集 API Key 和 Discovery Document
  • 2026.1-3:搭 AI Agent 开始自动化扫描
  • 2026.6.11:发文,约 27 个漏洞,累计 50 万美金

几点感受

规模化是这套打法的核心。1,500 个 API、3,600 个 Key、每个 Key x 每个 Label x 每个 endpoint 的组合空间,人肉不可能穷举。但 AI 也不是万能的,收集 Key、逆向 FPA v2、设计 MCP 工具、写 system prompt、判断漏洞影响,这些活 Claude 干不了。

工具设计比模型选择重要得多。同样是 Claude,第一版几乎废掉(context 爆、幻觉、提前收工)。改了好几轮工具和 prompt 之后才真正能用。AI 安全工具的核心不是模型多聪明,是人机接口设计得多好。

50 万赏金里很大一部分来自 staging 指向 production 的老问题。AI 没有发现什么新漏洞类型,它只是帮人在 1,500 个 API 的规模上高效地发现了一堆常见问题。

原文:Hacking Google with A.I. for $500,000


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:RedTeam tonghuaroot tonghuaroot《用 AI 搞 Google VRP 赚了50万美金》

评论:0   参与:  0