主页 > 网络知识 > 你可能不知道的挖洞小技巧系列之OAuth 2.0

你可能不知道的挖洞小技巧系列之OAuth 2.0

最近被一个同学问起OAuth2.0,才发现有不少人对OAuth2.0一知半解,没有去真正了解过,更不用提如何从OAuth2.0授权认证中去挖掘漏洞了。老洞新谈,OAuth2.0协议本身是没有问题的,而关于OAuth2.0的漏洞大多是一些配置不当所造成的,严重时甚至可以达到无交互登录任意授权账户。所以此文重点在于讲解OAuth 2.0是什么、运行原理流程(即OAuth 2.0的授权模式)以及测试漏洞点的思路。

 

定义-是什么

简单来说,OAuth简单说就是一种授权的协议,只要授权方和被授权方遵守这个协议去写代码提供服务,那双方就是实现了OAuth模式。OAuth2.0 使用已久,相信大家即使不清楚OAuth2.0是什么,但在渗透测试或者挖洞的过程中,也经常接触到,比如我们在WEB端总会碰到这样的支持第三方授权登录的登录界面。

 

你可能不知道的挖洞小技巧系列之OAuth 2.0

 

或者在移动端同样支持第三方授权登录的APP。

 

你可能不知道的挖洞小技巧系列之OAuth 2.0

 

这些应用都是通过用户授权后再去调用第三方登录,由第三方认证服务器返回认证数据,OAuth2.0就是客户端(知乎、饿了么等平台)和认证服务器(QQ/微信/支付宝/微博等)之间由于相互不信任而产生的一个授权协议。

 

原理-运行流程

在明确了OAuth2.0后,我们来看OAuth2.0客户端定义了用户授权的几种方式:授权码模式、简化模式、密码模式、客户端模式。

1.授权码模式

授权码模式是功能最完整、流程最严密的授权模式,也是最安全以及目前使用最广泛的一种模式。以知乎采用第三方微信登录为例。

认证流程:

(A)用户访问客户端,后者将前者导向认证服务器。

 

你可能不知道的挖洞小技巧系列之OAuth 2.0

 

 

你可能不知道的挖洞小技巧系列之OAuth 2.0

 

(B)用户选择是否给予客户端授权。

(C)假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。

 

你可能不知道的挖洞小技巧系列之OAuth 2.0

 

(D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。

(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌和更新令牌。

 

你可能不知道的挖洞小技巧系列之OAuth 2.0

 

2.授权码简化模式

认证流程:

(A)客户端将用户导向认证服务器。

 

你可能不知道的挖洞小技巧系列之OAuth 2.0

 

(B)用户决定是否给予客户端授权。

(C)假设用户给予授权,认证服务器将用户导向客户端指定的"重定向URI",并在URI的Hash部分包含了访问令牌。

 

你可能不知道的挖洞小技巧系列之OAuth 2.0

 

(D)浏览器向资源服务器发出请求,其中不包括上一步收到的Hash值。

 

你可能不知道的挖洞小技巧系列之OAuth 2.0

 

(E)资源服务器返回一个网页,其中包含的代码可以获取Hash值中的令牌。

(F)浏览器执行上一步获得的脚本,提取出令牌。

(G)浏览器将令牌发给客户端。

3.密码模式

认证流程:

(A)用户向客户端提供用户名和密码。

(B)客户端将用户名和密码发给认证服务器,向后者请求令牌。

(C)认证服务器确认无误后,向客户端提供访问令牌。

4.客户端模式

认证流程:

(A)客户端向认证服务器进行身份认证,并要求一个访问令牌。

(B)认证服务器确认无误后,向客户端提供访问令牌。

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!