Facebook 开出历史最高赏金,55,000 美元奖励十年漏洞发现者

timthumb.jpg文章来源:SegmentFault
近日,一名研究人员在 Facebook 平台上发现了一个严重的漏洞,该漏洞涉及登录的 Facebook OAuth 框架,可被用来劫持用户的 Facebook账号。由于发现了这个漏洞,该名研究人员获得了 Facebook 开出的账户劫持的单个最高漏洞奖励 —— 55,000 美元。
Facebook OAuth 框架缺陷
发现漏洞的研究人员名字叫 Amol Baikar 。它在一篇博客文章中透露到,该漏洞存在于"Login with Facebook"功能中。因此,当用户通过 Facebook 登录其他网站时,对手可能会劫持访问令牌。这不仅可以入侵 Facebook 账户,还可以访问相应的第三方服务。
“Login with Facebook”功能遵循 OAuth 2.0 授权协议在 facebook.com 和第三方网站之间处理用户的 token,只有当正确身份的用户token被验证通过,用户才能从第三方网站跳转到facebook.com网站。
攻击者利用该漏洞可以劫持受害者用户的 OAuth 身份验证机制,窃取受害者用户的 access token,最终实现对受害者 Facebook 账户的劫持。另外,攻击者可以通过控制架设恶意站点,针对大多数 APP 应用(如Instagram, Oculus, Netflix, Tinder, Spotify等),窃取用户 access_token,获取相关交互服务和第三方网站的访问控制权。
Baikar 在解释正常的登录流程时表示:

适用于 JavaScript 的 Facebook SDK 使用“/connect/ping”终结点发出 user_access 令牌,并将“XD_Arbiter”所有应用程序默认设置为白名单的 URL 重定向到该 URL。在后台,SDK 在初始化时会创建用于跨域通信的代理 iframe。代理框架通过 postMessage()API 发回令牌,代码或未经授权的未知状态。

但是只要端点足够安全,就可以防止已知的登录绕过策略,但有两个要点使利用页面代理成为可能,这进一步暴露了跨域通信。正如 Baikar 所说:

缺少“X-Frame-Options”标题。(完全脆弱的流程)

另外,“window.parent”本身将用户交互保存为零。无需理会 window.open 或任何按钮的 onClick 事件。

现在,跨域通信已经公开,并且在没有受害者知识的情况下,access_token 将“泄漏到任何来源”,然后攻击者可以设置新的电话号码以进行恢复。当 Facebook 最初解决此问题时,研究人员发现 OAuth 的核心终结点“ /dialog/oauth/”继续重定向到页面代理。
在收到漏洞提醒后,Facebook 提出了相应的修复措施:

不允许对xd_arbiter的任意修改,只接受单纯的文件路径”xd_arbiter.php”;

禁用所有xd_arbiter上的HTTP跳转;

删除page_proxy资源“7SWBAvHenEn.js”;

在另外一个JS脚本资源中增加正则过滤验证。

Facebook 开出历史最高赏金
www.idc126.com
根据 Baikar 在博客中所说,该漏洞存在了将近 9 到 10 年。最初,当 Baikar 就该漏洞与 Facebook 取得联系时,这家科技巨头迅速承认了该漏洞并开发了修复程序。最终,Facebook 开发了另一个修复程序,解决了这个已有十年历史的漏洞。而 Baikar 也获得了 Facebook 开出的历史最高的漏洞赏金,55,000 美元。

框架缺陷(1)Facebook(15)漏洞(446)
本文来源 SegmentFault,由 睡觉 整理编辑,其版权均为 SegmentFault 所有,本文观点不代表立场,转载请联系原作者。

本文经授权后发布,本文观点不代表立场,转载请联系原作者。
ParamSpider url参数挖掘机
« 上一篇 05-05
Supervisord 远程代码执行漏洞(CVE-2017-11610)漏洞复现
下一篇 » 05-05

相关推荐

红队防猝死手册

文章来源:https://github.com/zhutougg/RedteamStandard一切为了不丢分工作环境工作时全部操作均在虚拟机中完成虚拟机...

Android渗透工具集合

Android安全测试更多地被安全行业用来测试Android应用程序中的漏洞。下面将列举全面的Android渗透测试工具和资源列表,其涵盖了在Andro...

基于社工的钓鱼研究

声明由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。雷神众测拥有对此文章的...