oauth2.0框架:一种授权机制,第三方授权,系统产生一个短期的令牌(token)用于登录;
说白了就是
用户登录的accesstoken是由第三方服务器存储的
先看redircet跳转url漏洞是否存在
存在的话观察是否能截取别人的code
官方话术:OAuth 2.0是一个业界标准的授权协议,其定义了四种可以适用于各种应用场景的授权交互模式:授权码模式、应用授信模式、用户授信模式、简化模式。其中,授权码模式被广泛应用于第三方互联网开放平台,通过第三方登录是其最常见应用场景之一,比如使用微信、QQ和淘宝账号进行登录。
在OAuth 2.0的协议交互中,有四个角色的定义
- 资源所有者(Resource Owner):顾名思义,资源的所有者,很多时候其就是我们普通的自然人(但不限于自然人,如某些应用程序也会创建资源),拥有资源的所有权。
- 资源服务器(Resource Server):保存着受保护的用户资源。
- 应用程序(Client):准备访问用户资源的应用程序,其可能是一个web应用,或是一个后端web服务应用,或是一个移动端应用,也或是一个桌面可执行程序。
- 授权服务器(Authorization Server):授权服务器,在获取用户的同意授权后,颁发访问令牌给应用程序,以便其获取用户资源。
oauth2.0的授权过程
图片讲解:
1.首先客户端发出未授权访问url请求 2.第三方应用收到后,发起授权请求,定义redirectUrl,重定向到资源服务器 3.资源服务器返回给用户是否授权登录 (eg:微信的登录授权登录页面) 4.客户端确认授权登录,然后将授权登录通过的数据包发送到资源服务器端 5.资源服务器要给你返回一个token (而每一个用户的accessToken都存储在第三方服务器) 为了获取到正确的accessToken,会生成一个code码返回给第三方服务器(这个code码是一个用户对应一个code码,区分每个用户的accessToken) 6.第三方服务器根据这个code码去找你对应的accessToken返回给资源服务器 7.第三方服务器也会根据资源服务器发送的Code码来获取用户信息 8.第三方服务器会对用户信息做一个内部token处理(加密加盐等),之后将生成好的token返回给用户实现登录