最近,Facebook 的 Messenger 应用程序中的一个漏洞被修补和披露,该漏洞允许攻击者通过跨域 AJAX 访问用户的私人消息。
简单的错误允许黑客阅读您所有的私人 Facebook Messenger 聊天记录
此问题的根源在于 Facebook 聊天服务器域上的跨域标头实现配置错误,这使攻击者能够绕过源检查并从外部网站访问 Facebook 消息。
“Originull”的名称和屏幕截图似乎表明问题是以下标题:
Access-Control-Allow-Origin: null
但这让我想知道,值究竟是如何null
导致漏洞的。这看起来不像是一个有效的来源,除非您以某种方式从域访问网站null
(实际上,它需要是http://null
or https://null
,因为需要包含协议)。
我检查过,null
实际上并不是*
Chrome 或 Firefox 中的允许值。
XMLHttpRequest 无法加载http://other.localhost/ajax.php。“Access-Control-Allow-Origin”标头包含无效值“null”。因此,不允许访问源“ http://localhost ”。
(*
但是,使用 的值确实有效,因此显然仅仅存在null
不足以让任意页面访问这些资源。)
浏览器中是否有一些读取null
为 的功能或错误*
?或者浏览器中的某些功能,例如由数据 URI 打开的页面,允许匹配到null
? 这个漏洞是如何工作的?