2026年6月16日,凌晨三点,东京。
BobDaHacker盯着屏幕,手在发抖。
她面前的浏览器里,是FIFA世界杯2026的Streaming Management控制面板。每一场比赛。每一路摄像机。每一个RTMP推流密钥。Start、Stop、Schedule按钮,全部可用。
她打开VLC,粘贴一个预览流地址。画面亮了——科特迪瓦对阵厄瓜多尔的战术镜头,实时直播。
她把VLC关了。
然后她做了一件FIFA从来没做过的事:试图联系FIFA,告诉他们整个世界杯直播系统对任何一个注册过足球经纪人账号的人敞开了大门。
▲ BobDaHacker博客标题直白到残酷:一张身份证,就能劫持整个世界杯。
一张身份证,进了FIFA总部
事情的入口平凡到荒谬。
FIFA有一个公开的足球经纪人注册平台——agents.fifa.org。任何人都可以申请。上传身份证照片,填个邮箱,等审核。
BobDaHacker前两次提交因为自拍光线不够被拒。第三次,通过了。她收到了邮件,标题写着"FIFA - FAP - CONFIRMATION"。
到这里,她只是一个普通的注册用户。Angular前端也这么告诉她:登录fdp.fifa.org后,页面显示"NO_ROLES / Access Denied"。
但前端说的"不",后端没听见。
FIFA把代理商平台、评论员系统、流媒体管理、比赛数据分析,全部放在同一个Microsoft Entra(原Azure AD)租户下。任何人注册成功,就直接成为这个租户的成员,获得一枚合法的JWT认证令牌。
后端API只验证了一件事:这个令牌是不是FIFA租户签发的?是。好,通过。
至于令牌里的角色字段写了什么——ROLE_ADMIN还是NO_ROLES——后端根本没看。
用开发者工具直接调API,或者用curl带上令牌请求,前端那层"拒绝"瞬间消失。返回的数据完整、真实、在线。
五路机位,一个密钥,全部可控
Streaming Management面板展开后的内容,让BobDaHacker愣住了。
2026世界杯的每一场比赛,从小组赛到决赛,全部在列。点击任意一场,弹出五个机位角度:
- PGM
(Program,主广播信号) - Tactical
(战术镜头) - Camera 1
- High Behind Left
- High Behind Right
每路都带着RTMP推流地址、预览manifest、输出URL。同一个比赛的五路机位,共用一个stream key。
"Every match shared the same stream key across all 5 angles."
「每场比赛的五路机位,共用一个推流密钥。」
这意味着什么?拿到这组密钥,一个人可以同时替换这五个机位的画面。不需要攻破体育场里的摄像机硬件。不需要渗透任何网络边界。推流端点就在公网上,带着密钥就能往里灌视频。
▲ 真实的生产直播系统,不是测试环境。Start/Stop/Schedule按钮全部可用。
"我打开VLC。是活的。"
她复制了一段预览manifest到VLC。
画面缓冲了两秒。然后亮了。战术镜头,正在进行的比赛,球员在奔跑。
她立刻关掉。
但在此之前,她已经在面板上看到了更多东西。FDP(Football Data Platform)整个平台对她敞开:比赛管理、球队数据、分析工具、AI Pro模块。还有CIS(Commentator Information System)——评论员信息系统。
这是全球解说员看的东西。实时战术视图、球员数据、替补信息、阵型图。解说员嘴里那些"有趣的数据",就来自这里。
更可怕的是,她发现自己有写权限——修改比赛统计、更新控球率、调整官方开球时间、发布编辑备注。这些内容会直接进入广播系统,流入全球解说员的耳麦和屏幕。
▲ VLC播放的战术镜头截图。从预览manifest到真实直播画面,没有任何障碍。
她还意外发现了一个暴露的Azure Function和Blob存储容器,里面躺着23个内部Excel文件——转会数据、营收对比、裁判和教练统计数据。文件名里甚至有一份叫"Debbie.xlsx"的东西。
凌晨三点,找不到FIFA
真正折磨人的部分开始了。
她翻遍了FIFA官网和所有子域名。没有security.txt。没有漏洞披露政策(VDP)。没有bug bounty页面。没有任何写着"如果你发现了安全漏洞,请联系这里"的信息。
她开始群发邮件给各种能猜到的FIFA地址。大量退回。
她上LinkedIn找到FIFA足球技术数据主管Sebastian Runge的公开WhatsApp号码。发了消息。没有回复。
她拨了FIFA苏黎世总部电话。没人接。媒体热线。也没人接。
她又拨了达拉斯IBC(国际广播中心,Kay Bailey Hutchison Convention Center)的电话。语音信箱。
世界杯正在大洋彼岸直播。流密钥暴露在公网上。RTMP端点活跃。任何发现同一入口的人都可以做任何事。而她连一个能接电话的人都找不到。
最终,三条线通了:
MediaKind——FIFA的流媒体技术合作伙伴。免费热线有人接听,对方听懂了严重程度,要求她发邮件附上真实流密钥作为证明。
CISA——美国网络安全和基础设施安全局,2026世界杯网络安全的联邦牵头单位。24/7热线接了,要求邮件。
FBI——她通过Signal联系了已有的FBI渠道,对方协助她完成了上报流程的包装和推进。
次日,漏洞被静默修复。NO_ROLES账号现在会收到真正的HTTP 403,前端拦完,后端也拦。
FIFA全程零回复。没有致谢。没有补偿讨论。没有"我们收到了"。
她至今还留在FDP邮件列表里,持续收到官方的开场名单、战术阵容、全场报告——多语言版本。
▲ 澳大利亚iTnews的独立报道,标题直指"Access control flaw left FIFA World Cup match streams wide-open"。至少四家以上独立媒体交叉印证了核心事实。
"我本可以给全世界放Rickroll"
BobDaHacker的博客标题选了一句要命的话:"I Could've Rickrolled the Entire FIFA World Cup."
Rickroll是什么?1987年,Rick Astley唱了《Never Gonna Give You Up》。2007年起,这首歌在4chan和Reddit上演变成了互联网最经典的恶作剧——把链接伪装成别的东西,点进去是Rick Astley在跳舞。被耍了,就叫"被Rickroll了"。
二十年来,Rickroll从一个论坛玩笑成长为全球文化符号。但在世界杯决赛的PGM主信号里插入这首歌——那会是人类历史上最大规模的直播恶作剧,没有之一。
她没按那个按钮。
"In a parallel universe, billions watched Subway Surfers on the World Cup final. All it took was an ID card."
「在另一个平行宇宙,数十亿人在世界杯决赛上看地铁跑酷。只需一张身份证。」
▲ vx-underground的推广帖获得了1130+赞和5.5万浏览。社区反应热烈:技术认可、伦理辩论、以及对"错过史上最大Rickroll"的集体遗憾。
客户端授权不是授权
这起事件的核心反模式,用BobDaHacker自己的话说:
"Client-side authorization is not authorization. Interns know this."
「客户端授权不是授权。实习生都知道。」
但FIFA的生产直播系统不知道。
整个架构的错误只有一层:Angular前端拿到JWT,自己解析role字段,发现是NO_ROLES,渲染一个"Access Denied"页面。而后端API只验证了JWT签名合法、来自自家租户——没有检查角色。
这是Web安全里反复出事的经典坑。CISA在不止一份警告里提过类似配置。从创业公司到世界级体育组织,都在踩同一个坑。
把FDP、CIS、Streaming Management全部塞进同一个Entra租户、再开放公共自注册入口——等于把保险柜放在大堂、门上贴张手写"禁止入内"、但锁根本没装。
▲ Lobsters讨论里,有人调侃"FIFA Bribe Management",也有人提醒真动手会惹上大麻烦。
漏洞修了,系统性问题还在
FIFA修得很快——这是技术层面唯一的好消息。
但修复速度遮不住更大的问题。一个年收入数十亿美元、操办地球上观看人数最多体育赛事的组织,没有安全联系方式、没有漏洞披露政策、没有赏金计划。做好事的研究者被迫在半夜打给CISA和FBI才能把漏洞报上去。
这不是FIFA一家的毛病。大型体育组织在数字化转型中,安全成熟度普遍落后。过去转播链路的安全边界是物理的——体育场门禁、卫星上行站安保、广播车锁门。今天转播链路变成了HTTP API和RTMP端点,物理门禁换成了OAuth令牌。思维没跟着换。
历史上有过更戏剧性的电视入侵——1987年,一个戴着Max Headroom面具的人劫持了芝加哥两家电视台的信号。那是需要设备和技术的硬核入侵。三十九年后,只需要一张身份证照片。
▲ Rickroll从2007年的论坛玩笑到今天的全球文化符号。在世界杯决赛放这首歌,会成为史上最大规模的直播恶作剧。
那个没按的按钮
BobDaHacker在博客结尾写了一个细节:
她至今还在FIFA的邮件列表里。修补漏洞之后,系统没把她踢出去。官方开场名单、战术阵容、全场数据报告,照常发送。多语言的,一份不落。
漏洞修了,但她作为"不应有权限"的用户,仍然在信息流里。
这大概就是整件事最精确的隐喻。
那个Start按钮她没按。但世界杯直播安全的警钟,已经按了。

