为什么 OAuth 中的通配符子域回调 URL 被认为是不安全的?

信息安全 oauth2
2021-09-06 11:40:22

在这篇文章中: http: //technotes.iangreenleaf.com/posts/closing-another-nasty-security-hole-in-oauth.html

在此字段中输入您的完整回调 URL。这意味着您应该提供整个路径,例如 https://mysite.com/oauth/callback不要使用通配符,也不要只使用域。

该帖子指出通配符不安全。

后来,该帖子提供了一个示例,该示例仅显示了任意回调 URL的漏洞。

我想知道为什么像这样的回调https://*.mysite.com/oauth/callback是不安全的。似乎没有 OAuth 提供者支持它(例如 Google 和 Facebook)。

谢谢你。

2个回答

这不安全的原因还有很多:

  • OAuth 可以重定向到通配符潜在泄漏令牌下的任何子域等示例:如果您只有一些子域并且不拥有整个通配符,那么攻击者可以注册其他子域并进行真正的网络钓鱼攻击,例如登录页面或提供恶意网页

  • 以这种方式发行的每个令牌都会是跨通配符来源(我不知道您在这个通配符下有多少应用程序)

  • 如果您仅针对某些子域用户通配符使用 ssl,则中间人攻击很容易,因为我可以重定向到您的非 HTTPS Web 服务并获取令牌并以该用户身份登录

  • 取决于 OAuths 提供者的实现和你的,如果你有 SSL for *.example.com,攻击者仍然可以使用. .example.com 到 MitM 攻击最终用户,因为 DNS 采用了这个但是。确定如果 OAuth 不验证子域的子域

相关问题:有人可以解释 OAuth 和 OpenID 中的“隐蔽重定向”漏洞吗?

首先想到的是子域接管攻击变得更加强大。例如,这也可能让您在 support.example.com 上托管的帮助台软件为 admin.example.com 生成有效的 oauth 令牌以进行权限升级。

而且,对于奖金,有些人在免费提供子域的托管服务提供商上运行。因此,如果我可以从中生成一个 oauth 令牌,那么我可以获得一个对其他人有用的令牌。