AI挖洞日记:三个月从Google薅走50万美元

AI挖洞日记:三个月从Google薅走50万美元

导语:用AI来挖漏洞,听起来是不是有点科幻?三个月前我尝试了这件事,没想到一路开挂,直接从Google薅走了50万美元的漏洞奖金。这不是吹牛,是真实发生的事情。


日记前言

2025年的某天,我盯着屏幕发呆,脑子里冒出一个疯狂的想法:能不能训练一个AI,让它来帮我挖掘Google的漏洞?

我知道你在想什么——Google?那可是Google啊,安全团队上百人,漏洞奖励计划(VRP)运行了十几年,哪还有漏洞可挖?

但实际情况恰恰相反。

Google拥有数千个API,其中大量是内部使用的,管理相对松散。这些”隐秘的角落”往往是最容易被忽略的地方,也是漏洞的温床。

于是,我开始行动了。


第一天:收集”钥匙,

挖漏洞的第一步,是找到进入的门。

Google的API就像一扇扇上了锁的门,而API密钥就是那些钥匙。我需要收集尽可能多的钥匙。

我的收集方式:

第一,从Google的公开文档里扒。Google API Explorer会暴露大量API密钥,我写了个爬虫自动提取。

第二,从公开的YouTube视频和博客文章里挖。Google员工有时候会不小心在视频或文章中露出内部域名和路径的线索。

第三,从GitHub的代码样本里翻。开发者经常把示例代码分享到GitHub,里面经常含有真实的API密钥。

忙活了好几个月,我手头攒了一大堆钥匙,涵盖了各种内部API和服务。


第一周:绘制”地图,

光有钥匙不够,我还需要知道每扇门后面是什么。

Google使用”Discovery文档”来描述API的结构。这些文档是JSON格式,包含端点、参数、认证要求等信息。

我写了一个扫描器,对Google的各个域名进行探测,寻找这些Discovery文档。过程很繁琐——每个文档都有不同的主机名、路径和认证要求。

最终,我成功收集了大量未公开的API文档。

这时,一个清晰的事实摆在我面前:这些API的安全措施,远比我想象的薄弱得多。


第一个月:搞定认证

接下来的障碍是认证。

Google API使用一种叫做FPA v2的认证机制。简单理解就是:

  • API密钥用来标识项目
  • FPA令牌用来标识用户身份

但问题是,不同API对认证的要求各不相同。有的需要API密钥加FPA令牌,有的只需要API密钥,还有的需要特殊的头部信息。

我花了大量时间测试这些边界情况,找到了许多绕过来源验证的方法。

比如,某些API只检查域名是否包含”google.com”——那我用一个google.com.evil.com就能绕过。

某些API对测试环境的检查过于宽松——那测试环境和生产环境就成了我的后门。


第二个月:造一把”万能钥匙,

手动测试的效率太低了。一个API可能有上百个端点,纯靠人工根本测不过来。

我决定开发一套自动化工具。

这个工具能够:

  1. 自动探测 — 根据Discovery文档自动生成测试请求
  2. 多维度测试 — 测试不同的认证状态、不同的参数组合
  3. 结果对比 — 对比不同API密钥的响应差异
  4. 漏洞识别 — 自动识别潜在的安全问题

工具开发得很顺利。但我很快意识到,工具能做的仍然有限——它能发现异常,但无法判断这异常是不是真的漏洞。

我需要AI。


AI上岗

让AI来理解API的响应,判断是否存在安全问题,并生成有效的漏洞利用方式——这个想法让我兴奋不已。

我先从一个小实验开始:让AI代理访问一个API,尝试找出IDOR(越权访问)漏洞。

初始方案很简单:

  • 给AI两个工具:probe_api(测试端点)和report_vulnerability(报告漏洞)
  • 让AI对每个API进行”渗透测试,
  • AI完成测试后调用confirm_testing_complete确认完成

但问题来了:AI测试得不够彻底。它总是浅尝辄止,探几个点就退出了。

我用了Ralph Wiggum循环来逼迫AI完成测试——只有当每个端点都至少被探测一次时,才允许AI结束。

即便如此,AI的准确率仍然不高。它会报告大量”潜在”漏洞,但其中绝大部分根本无法利用。

转折点在于分组策略。

我重新设计了方法:首先让AI把端点按功能分组,然后每个”渗透测试”只聚焦一个分组。这样AI的注意力更集中,测试更深入。

同时,我简化了probe_api的调用方式,把冗长的前缀去掉(比如autopush_cloudcrmcards_pa_sandbox.updateDataFetcherConfiguration直接变成updateDataFetcherConfiguration),减少AI出错的可能。

这是TranslationHub SA的提示词:

TranslationHub SA Prompt

还有一个关键优化:让AI用多个密钥探测同一个端点。

在Google的API中,不同密钥访问同一个端点,可能返回完全不同的结果。这是因为某些端点有”可见性标签”限制。

我让probe_api自动用所有已知密钥发送相同的请求。结果立竿见影——AI很快发现了那些”只对特定密钥可见”的隐藏端点。

关于错误解析,也是门学问。

Google API的错误响应往往是加密的。比如这个:

{
  "error": {
    "code": 404,
    "message": "Method not found.",
    "status": "NOT_FOUND,
  }
}

这并不意味着方法不存在——如果真的不存在,响应会是HTML而不是JSON。实际上,这表示你的API密钥缺少某个必需的”可见性标签”。

我将这些错误解析成标准类型,比如MISSING_REQUIRED_VISIBILITY_LABEL,让AI能够理解这些错误的真实含义。

最后,也是最关键的——调整系统提示词。

这花了整整一个多月。我不断告诉AI:什么该报,什么不该报。

比如,能探测某个用户是否存在,这本身不算漏洞。但如果能进一步获取用户的邮箱或姓名,那就是漏洞了。

又比如,500错误不报,401/403/404错误不报,400参数错误也不报——除非它们泄露了额外信息。

这是最终的Vertex AI Assistant配置界面:

Vertex Assistant 1
Vertex Assistant 2
Vertex Assistant 3
Vertex Assistant 4
Vertex Assistant 5
Vertex Assistant 6

调整完成后,AI的准确率突破了50%。也就是说,每两个报告里,至少有一个是真实漏洞。

这时我意识到:唯一的限制因素,变成了API密钥数量。


挖洞进行时

三个月时间,AI帮我发现了大量漏洞。让我挑几个有意思的讲讲。

Google Voice账户接管:一个电话号引发的血案

在测试gfibervoice-pa.googleapis.com这个域名时,我发现了一个让人震惊的事实:它上面完全没有访问控制。

只需要一行curl命令,不需要任何认证:

curl 'https://gfibervoice-pa.googleapis.com/v1/BssGetVoiceSettings?gaiaId=786575234861' 
 -H 'X-Goog-Api-Key: AIzaSyBFEIaAndFpMDyNGq2g54RJYt_GFZdcRHE'

只要目标用户有绑定Google Voice号码,我就能拿到他所有的个人信息——包括:

  • Google Voice号码
  • 账户恢复手机号码
  • 语音邮箱设置
  • 来电转接号码

这还没完。API还提供了一个分配号码的端点——我可以向任何Google账户添加Google Voice号码,即使该账户从未使用过Voice。

更绝的是,这个号码会直接出现在受害者的”我的手机”页面上,来源显示为”系统添加”。

想象一下这个攻击链:用这个漏洞拿到目标的手机号,然后通过语音邮箱重置密码,或者直接截获验证码……

这个漏洞被评为P0/S0级别。Google几小时后就修复了,奖金是20,000美元

AdExchange:测试环境连接着生产数据

AdExchange是Google的广告管理平台。

AI发现了一个可以列出所有AdExchange账户的端点。但当我试图进一步利用时,所有敏感操作都被拒绝了。

转折点在于测试环境。

test-adexchangebuyer-googleapis.sandbox.google.com这个测试域名上,AI发现了一个新的攻击面——而且这个测试环境的API,连接的是生产数据!

我可以直接查看任何AdExchange账户的详细信息,包括账户名称、联系人邮箱、货币类型、时区设置等。

甚至可以把自己添加为任意账户的管理员:

{
  "emailAddress": "gvrptest2@gmail.com",
  "accountId": "6558940734",
  "status": "PENDING",
  "role": "ADMIN,
}

这个漏洞拿下了30,000美元奖金。

Eldar:Google员工的隐私系统被我”越权”访问

Eldar是Google员工专用的内部系统,用于管理隐私请求和评估。前端受ÜberProxy保护,本来应该是安全的。

但我发现了问题:API本身暴露在eldar-pa.clients6.google.com上,任何人都能访问。

这意味着什么?

Google员工在Eldar上申请访问各类内部日志和数据的记录,都对我透明公开了。包括谁在什么时间申请了什么数据、审批状态如何等信息。

漏洞修复后,我收到了一封Eldar发来的邮件——这说明我可以创建和分享自己的评估,Google那边完全不知情。

这个漏洞拿到了26,674美元奖金。

YouTube未公开视频:预测市场的”财富密码,

这是我觉得最有趣的一个漏洞。

我发现,每当YouTube创作者上传视频(即使设为未公开),系统都会自动创建一个资产记录。而这些资产的名称,格式是Auto generated asset -

这意味着,通过搜索”Auto generated asset – “,我可以枚举YouTube合作伙伴的所有未公开视频ID。

这在现实中有多可怕?

想象一下:某公司准备发布一款重磅产品,提前拍摄了宣传视频设为未公开进行内部测试。有人利用这个漏洞提前观看了视频,然后用内幕信息去预测市场下单……

预测市场Polymarket允许人们对未来事件下注,包括Google下一代Gemini模型的发布。你说,这漏洞是不是”财富密码”?

这个漏洞被评为12,000美元

Widevine DRM:迪士尼、Netflix的密钥管理门户被我”越权,

Widevine是Google收购的DRM技术,被迪士尼、Netflix等公司用于保护视频内容。

Google为这些合作伙伴提供了一个密钥管理门户。通常这类门户是完全锁死的,但这个却奇怪地可以用Google账户登录——虽然你实际上无法管理任何配置文件。

但AI发现了真相。

通过API,我可以:

  • 列出所有使用Widevine的组织
  • 查看任何组织的AES密钥
  • 解密这些密钥
  • 把自己添加为任何组织的管理员

这是成功添加后的界面截图:

Widevine管理界面

想象一下:如果有人利用这个漏洞窃取了Netflix的Widevine密钥,然后制作盗版版本……

这个漏洞拿到了16,004.40美元奖金。


日记尾声

三个月,总计超过50万美元漏洞奖金。

这个数字让我自己都有些恍惚。

但更让我感慨的是AI在其中的作用。它不是万能的,但确实大幅提升了效率——我不再需要手动处理大量重复性测试,AI帮我做了这些苦活累活。

而我需要做的,只是判断AI的发现是否真实,然后写一份清晰的报告。

回过头来看,Google的漏洞主要藏在几个地方:

  1. 内部API是座金矿 — 与公开API相比,内部API的安全措施往往更薄弱
  2. 边界情况是突破口 — 来源验证、密钥限制、可见性标签……这些边界条件往往是漏洞的藏身之所
  3. 系统化方法至关重要 — 建立完善的工具链、测试框架和报告流程,才能持续高效地输出

这是我的工具界面:

Siege Introspection

现在,如果你问我接下来要挖哪个目标?

答案是:还没有确定。但有一点是肯定的——AI辅助渗透测试的时代,才刚刚开始。


出处:Brutecat – https://brutecat.com/articles/hacking-google-with-ai/

版权声明:本文由华盟网原创发布,保留所有权利。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容