返回介绍

17.2 OAuth2.0 漏洞总结

发布于 2024-10-11 00:03:37 字数 2049 浏览 0 评论 0 收藏 0

17.2.1 某社交网站 CSRF 漏洞导致绑定劫持

某社交网站-百度 OAuth 2.0 认证流程中,没有提供有效的方式来抵抗针对 redirect_uir 的 CSRF 攻击。如果攻击成功,攻击者不需要知道受害用户的账号和密码就可登录受害账

号。

某社交网站-百度

OAuth

2.0

认证流程中链接为

https://openapi.baidu.com/oauth/2.0/authorize?

response_type=code&client_id=foRRWjPq8In3SIhmKQw1Pep3&redirect_uri=http://www.xxxx.com/bind/baidu/baiduLoginCallBack。

某社交网站并没有加入 state 参数来抵抗针对 redirect_uir 的 CSRF 攻击。如果攻击者重新

发起一个某社交网站百度 OAuth

2.0 认证请求,并截获 OAuth

2.0 认证请求的返回:

http://www.xxxx.com/bind/baidu/baiduLoginCallBack?code=f056147c661d0b9

fbb6cd305567cb994。

攻击者诱骗已经登录的某社交网站用户单击立即绑定(比如通过邮件或者

QQ 等方

式),如图 17-2 所示,网站会自动将用户的账号同攻击者的账号绑定到一起,如图 17-3 所

示。

图 17-2 某社交网站-百度账号绑定

图 17-3 百度账号绑定成功

修复建议:OAuth 2.0 提供了 state 参数用于 CSRF 认证服务器将接收到的 state 参数按原

样返回给 redirect_uri,客户端收到该参数并验证与之前生成的值是否一致。除此方法外也

可使用传统的 CSRF 防御方案。

17.2.2 某社区劫持授权

以某社区账号登录“微博通”应用的授权页面为例,如图 17-4 所示。

图 17-4 授权页面

http://open.xxxx.cn/oauth/authorize.php?oauth_token=e65d28ab0862cbd517c67c3cc 6f2247e052ad9c22&oauth_callback=http%3A%2F%2Fm.wbto.cn%3A80%2F%3Fc%3D

m_setting%26m%3Dauth%26b%3Dcallback%26pid%3D24%26aid%3D%26wbto%3D16

58628_953c148f2d%26oauth_token%3De65d28ab0862cbd517c67c3cc6f2247e052ad9c22%26oauth_token_secret%3D2fde10390cd1a2477abaa3dcd44e4b99

其中,oauth_callback 没有与应用的 oauth_token 进行绑定,没有对可用性进行校验,可

以修改为任意地址。这里我们把 oauth_callback 的值改为 xxx.org,并没有提示 uri 非法。登

录并授权,跳转到了指定的地址,用户的 oauth_token 泄露,如图 17-5 所示。

图 17-5 跳转到 xxx.org

修复建议:请遵循 OAuth 协议规范,将应用的 oauth_token 与 oauth_callback 绑定,对

oauth_callback 进行有效性校验。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文