AIGC在金融场景是如何落地的? 了解详情
写点什么

利用 OAuth 劫持用户身份

  • 2014-08-27
  • 本文字数:1426 字

    阅读完需:约 5 分钟

本文基于 @蓝色 di 雪球在 2014 年 8 月 22 日的 KCon 上的演讲《利用 OAuth 劫持用户身份》整理而成。

演讲者简介

@蓝色 di 雪球,新浪微博安全团队安全工程师。主要从事微博产品的安全测试,安全功能架构,以及相关自动化平台工具架构和研发工作。致力于研究应用安全,安全自动化以及安全运维等。

OAuth 是什么

OAuth 是一个开源授权协议,通过授权,第三方应用可以在不使用用户名密码的情况下,访问用户在某一个网站上的私密数据。目前微博、淘宝、微信、Twitter、Facebook 等用户基数比较大的公司都在使用 OAuth,从谷歌的搜索结果也可以看到 OAuth 的发展很快,使用的人非常多。OAuth 分为 OAuth 1.0 和 OAuth 2.0,OAuth 2.0 简单清晰,是 1.0 的升级版,但是不兼容 1.0,目前大多数网站也都是使用的 OAuth 2.0。

OAuth 的四种调用方式

  1. Authorization Code
    最常用的,相对安全,需要有 Server 端支持。
  2. Implicit
    直接获取 access_token,不需要 Server 端支持。
  3. Resource Owner Password Credentrals
    第三方可以获得用户名和密码,需要第三方绝对可信。
  4. Client Credentials
    不需要用户授权,授权通过服务器进行。

请求参数

在了解 OAuth 的漏洞之前,首先需要了解常用的 OAuth 调用方式的请求参数。

  1. Authorization Code
  • https(加密传输)
  • response_type=code(控制调用)
  • redirect_uri(回掉地址)
  • scope(控制权限)
  1. Implicit
  • display(场景控制)
  • response_type=token(控制调用)
  • referer(请求来源)
  • 没有 redirect_uri

OAuth 风险分析

风险分析

  • 信息泄漏
    主要包括 Authorization Code 泄漏、Access Token 泄漏、AppSecret 泄漏。
  • CSRF
    主要包括授权劫持和绑定劫持。授权劫持是指用户在目标网站处于登录状态的情况下,攻击者通过伪造授权链接来诱骗用户点击,用户访问攻击者的链接后,攻击者就会劫持用户授权。绑定授权同样是在用户处于登录状态的情况下,攻击者通过用户授权登录目标网站并阻断用户授权流程,进而诱骗用户点击,用户在访问攻击者的链接后,攻击者就可以劫持用户授权。
  • URL 回调污染
    主要是指由于 redirect_uri 回调地址填写不严格或者授权服务器不验证或者验证不严格而导致的 code 或者 access_token 泄露。
  • 权限认证
    主要是指 OAuth 高级授权接口的越权访问,比如 GitHub 的 scope 漏洞,导致可以访问私有代码区。
  • 不区分调用方式
    主要是指在 Authorization Code 和 Implicit 两个调用方式,它们的区别仅仅是一个参数,黑客可以利用这个参数来绕过 AppSecret 认证。

如何优雅的利用 OAuth 漏洞

  1. 劫持用户应用方身份
    这种方式需要用户绑定第三方应用和网站进行授权绑定,黑客修改回调地址后,紧接着用户就会跳转到接受 code 的网址,黑客获得 code 后就可以登录与网站绑定的第三方账号。具体的攻击过程是这样的:1)用户授权将网站与第三方应用绑定 2)用户已经登录网站 3)黑客构造 OAuth 回调污染地址 4)通过私信等其它途径诱惑用户点击 URL 5)利用 Authorization Code 劫持用户第三方应用的身份
  2. 劫持用户授权方身份
    黑客利用 OAuth 中的 URL 跳转漏洞,XSS 漏洞后拿到 accesss_token。通过 access_token,黑客可以劫持大 V 用户发微博、劫持大量用户发评论、删除指定微博、刷粉、强制关注等。

OAuth 漏洞修复

微博中存在的问题:

  • 开放平台中 redirect_uri 不规范
  • redirect_uri 校验存在逻辑错误
  • 不区分调用方式

最终的修复方案:

  • 将大型应用添加进白名单,严格验证开放平台回调地址
  • 非白名单进行全路径验证
  • 运营和产品推动,规范白名单内应用的回调地址,改完移出白名单,直到白名单清空
2014-08-27 04:083146
用户头像

发布了 219 篇内容, 共 131.8 次阅读, 收获喜欢 188 次。

关注

评论

发布
暂无评论
发现更多内容

开心档之C++ 多态

雪奈椰子

哪里有免费大文件传输平台?通过这4个网站免费来进行大文件传输

镭速

对话阿里云致凡:社会视频化“狂飙”,倒逼视频云技术加速迭代

云布道师

平头哥

重磅消息 | 2023年腾讯云从业者课程全面升级

科技热闻

数据库原理及MySQL应用 | 程序流程控制

TiAmo

数据库 sql

智改数转:这个制造业的必答题该如何作答?

加入高科技仿生人

低代码 数字化 制造业 智能化 智改数转

软件测试/测试开发丨Chrome 浏览器+Postman还能这样做接口测试 ?

测试人

软件测试 Postman 自动化测试 接口测试 测试开发

开心档之MySQL WHERE 子句

Springfox与SpringDoc——swagger如何选择(SpringDoc入门)

天翼云开发者社区

5月上海线下 · CSM认证周末班【提前报名特惠】“全球金牌课程”CST导师亲授

ShineScrum捷行

保证高效写入查询的情况下,如何实现 CPU 资源和磁盘 IO 的最低开销?

TDengine

大数据 tdengine 数据处理 时序数据库 资源消耗

从“卖船”到提供建造“航母” 的基础设施,用友BIP有底气

用友BIP

FastAPI 快速开发 Web API 项目: 定义路径参数和查询参数

宇宙之一粟

Python FastApi

龙蜥开发者说:历时三周,记录如何从 0 到 1 构建龙蜥衍生版 | 第 18 期

OpenAnolis小助手

开源 操作系统 龙蜥社区 浪潮信息 衍生版

明道云技术路径选择及与LCDP的比较

明道云

网上说低代码的一大堆,JNPF凭什么可以火?

引迈信息

前端 敏捷开发 低代码 快速开发 JNPF

开心档之C++ 指针

雪奈椰子

前沿成果 | 澳鹏Appen团队两篇研究论文被国际顶会收录

澳鹏Appen

人工智能 机器学习 计算机视觉 nlp 数据标注

【特别策划】2022年银行年报金融科技系列专题(一)

易观分析

金融科技 金融 银行

5月上海线下 · CSPO认证周末班【提前报名特惠】“价值交付课程”CST导师亲授

ShineScrum捷行

基于SpringBoot实现单元测试的多种情境/方法(二)

天翼云开发者社区

分布式政企应用如何快速实现云原生的微服务架构改造

华为云开源

微服务 云原生

软件测试/测试开发丨玩游戏为什么会卡顿?

测试人

软件测试 游戏 自动化测试 卡顿 测试开发

CTO:半小时内处理好MyBatisPlus逻辑删除与唯一索引的兼容问题

了不起的程序猿

容器化,让数据库如虎添翼

沃趣科技

MySQL 数据库 云原生 容器化

CNStack 服务网格:构建统一的服务治理和零信任安全能力

阿里巴巴云原生

阿里云 云原生 CNStack

软件测试/测试开发丨如何高效使用 Requests 做接口自动化测试

测试人

软件测试 自动化测试 接口测试 测试开发 requests

如何通过Java代码将添加页码到PDF文档?

在下毛毛雨

Java PDF 添加页码

打破软件开发“不可能三角” 只需一个低代码方案

力软低代码开发平台

国营单位工作4年转行网络安全,成功上岸安全开发!

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

再获权威认可!MIAOYUN入选中国信通院2022年度《云原生产品目录》

秒云

云计算 容器 云原生 容器云 容器云平台

  • 扫码添加小助手
    领取最新资料包
利用OAuth劫持用户身份_DevOps & 平台工程_小盖_InfoQ精选文章