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

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

因为此授权模式用户直接向客户端注册,客户端以自己的名义要求"服务提供商"提供服务,实际上不存在授权问题,再加上实际环境中此授权方式利用较少,暂不表述。

 

漏洞点(攻击面)

在上述的认证流程中,不论哪种模式,都是为了从认证服务器获取access_token,用来访问资源服务器。而申请access_token,需要在请求里添加几个必要参数。如下所示:

client_id:表示客户端的id(我是谁)。

response_type或grant_type:表示授权类型(申请哪种模式)

scope:表示申请的权限范围(申请哪些权限,由授权服务器定义)。

redirect_uri:表示重定向URI(申请结果跳转至哪儿)。

state:表示客户端的当前状态,可以指定任意值,认证服务器会原封不动地返回这个值(自定义信息希望服务端原样返回)。

code:表示授权码,必选项。该码的有效期应该很短,通常设为10分钟,客户端只能使用该码一次,否则会被授权服务器拒绝。该码与客户端ID和重定向URI,是一一对应关系。

而关于OAuth2.0漏洞的挖掘也是围绕其中几个重要参数点展开,大致分为以下几个方面:

1.OAuth劫持

根据OAuth的认证流程,用户授权凭证会由服务器转发到redirect_uri对应的地址,如果攻击者伪造redirect_uri为自己的地址,然后诱导用户发送该请求,之后获取的凭证就会发送给攻击者伪造的回调地址.攻击者使用该凭证即可登录用户账号,造成授权劫持。

第一种情况:回调URL未校验

如果回调URL没有进行校验,则黑客可以直接修改回调的URL为指定的任意URL,即可以配合CSRF进行token骗取。

?response_type=code&redirect_uri=http://www.baidu.com&client_id=10000&theme=coremail

此类问题类似于普通的URL跳转,案例演示略。

第二种情况:回调URL校验绕过

部分OAuth提供方在进行的回调URL校验后存在被绕过的情况。

此种漏洞类型也是如今最为常见的类型。以某个授权页面所示:

https://xxx.com/ authorize?response_ type=code&client_ id=ArOUCNpMvP&redirect_uri=https://xxx.com/app/token&state=xxx.com&scope=all

 

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

 

直接修改redirect_uri参数发送请求,发现进行白名单校验。

 

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

 

对redirect_uri参数进行Fuzz。

 

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

 

使用这个值即可绕过白名单限制: :80#@xxx.com/,返回授权页面正常。

 

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

 

下面是一些常用的bypass方式:

///..

///

/https:/gh0st.com/

//..

//

/

https://www.xxx.com/www.gh0st.com

//gh0st.com

.gh0st.com

:80#@xxx.com

@gh0st.com

#gh0st.com

?gh0st.com

gh0st.com

gh0st.com

第三种情况:利用URL跳转漏洞
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!