16 岁研究者用自建 AI 机器人 Antares 打穿微软 Titan:17.3 万亿行数据曾因一个不验签的令牌可达

9 月 25 日,16 岁安全研究者 Faav 公开了他对微软内部分析平台 Titan 的完整复盘。起点是 8 月 25 日:他自建的 AI 机器人 Antares 发现 Titan 的网页界面要求连 VPN,后端 API 却公网可达。该 API 未在任何前端页面被链接,Antares 枚举微软子域后找到 Azure 上的一台主机,取回一份公开的 Swagger 文档——4 条路由里 3 条要求 Azure AD 认证,唯一接受原始 SQL 的 /v2/Query 是例外。查询需要 tableName 而文档没给示例值,他从 Wayback Machine 里 2023 年的 Titan 登录页快照恢复出 Apache Superset 配置,拿到 56 个表与路由定义。
接下来 10 天,Antares 一层层撞开令牌校验:改 tenant 报租户错误、改 audience 报受众错误、改应用 ID 撞上应用白名单、改用户才走到用户查询。载荷一直在变、签名始终不变,Titan 却一直接受新声明——这就是线索:它根本没验证签名。Faav 随后伪造 alg 为 none、签名段为空的令牌,把 upn 从邮箱格式改成字面量 admin;Titan 把 upn 当成本地应用用户名解析到 ID 1(Admin 角色),SQL 执行成功。之后他用 56 个历史路由值逐个试 SELECT 1,30 个仍生效,经 24 个配置指向 17 个分析库、9,863 张表,按元数据求和约 17.3 万亿行,含 Bing 搜索分析数据源。他声明只做了两次单行采样,未批量导出,未接触客户 PII。
时间线是:9 月 5 日凌晨确认、以 Case 144051 报 MSRC,微软 9 月 9 日关停该接口(报告后 4 天),9 月 17 日给出 5,000 美元赏金,9 月 22 日与他沟通披露。他同时注明微软对这篇博客有编辑控制权,删改过章节、图片与影响描述——这会直接影响读者怎么读那个「17.3 万亿」的估算。更值得记的是他对工具的判断:Antares 独自做不到,他也做不到;机器人包下了子域枚举、错误消息试错、攻击面测绘这些体力活并坚持了 10 天,破局的仍是一个人类直觉——upn 未必是 UPN。
原文链接:blog.faav.net / IT之家