Lobsters | 📄 原文链接 | 2026-10-13 收录

我如何找到 Google 一个价值 9 万美元的远程代码执行漏洞

来源:simonkoeck.com — 2026-10-12

📋 概述

Simon Koeck 在梳理 Google 开发者文档站共享的 OAuth 流程时,抓取了 /oauth2authorize 下发的 Flask session cookie:它有约 1200 字节,远超一个 CSRF token 加 return_url 所需,于是他把内容解码出来。Flask 会话 cookie 只签名不加密,前导点意味着 payload 经过 zlib 压缩;解压后里面是一个 pickle 序列化的 oauth2client OAuth2WebServerFlow 对象,并且明文带着 Google 的 OAuth client_id 与 client_secret。最致命的是他把这个 client_secret 当作 Flask SECRET_KEY 一试,发现给自己签发的 cookie 签名完全验证通过——签名密钥就藏在它签名的对象里。他没有停在侥幸猜测上,而是按 itsdangerous 的 cookie-session 派生方式离线重算签名加以确认,最终把伪造会话变成跨越七个 Google 域名的代码执行,获 9 万美元赏金。

🔑 核心要点

💡 金句

developers.google.com 上的一个 Flask cookie,用一把它自己也随身携带的密钥签名。
← 返回 Lobsters 首页