在浏览网页时,你肯定会遇到允许你使用社交媒体帐户登录的网站。此功能一般是使用流行的OAuth 2.0框架构建的。在博主的上一篇文章《什么是OAuth 2.0?OAuth 2.0的工作流程是什么?与OAuth 1.0有哪些区别?》中详细介绍了OAuth 的基础知识和工作原理,本文则主要介绍如何识别和利用OAuth 2.0身份验证机制中发现的一些关键漏洞。
1. 漏洞产生原因
- OAuth身份验证漏洞的出现部分是因为OAuth规范在设计上相对模糊和灵活。尽管每种授权类型的基本功能都需要一些强制性组件,但绝大多数实现都是完全可选的。这包括许多保持用户数据安全所必需的配置设置。
- OAuth的另一个关键问题是普遍缺乏内置的安全功能。安全性几乎完全依赖于开发人员使用正确的配置选项组合,并在上面实现他们自己的附加安全措施,例如稳健的输入验证。正如您可能已经收集到的,有很多东西需要接受,如果对OAuth缺乏经验,就很容易出错。
- 根据授权类型的不同,高度敏感的数据也会通过浏览器发送,这为攻击者拦截数据提供了各种机会。
2. 如何识别OAuth身份验证
识别应用程序何时使用OAuth身份验证相对简单。如果你看到使用其他网站的帐户登录的选项,这强烈表明正在使用OAuth。