AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

利用OAuth劫持用户身份 by 蓝色di雪球@新浪微博

发布者 security
发布于 1439945934237  浏览 8378 关键词 网络安全 
分享到

第1页

利用OAuth劫持用户身份
新浪微博 移动&安全团队
 @蓝色di雪球

第2页

 
Who  I  Am
新浪微博 移动&安全团队安全工程师

目前负责微博的应用安全&安全自动化平台架构&通行证

致力于研究应用安全,安全自动化和安全运维

第3页

OAuth的发展

第4页

OAuth是什么
方便,不需要维护用户名密码,成本低
引流
登录率

第5页

OAuth的应用

国内外使用广泛

第6页

OAuth的发展

第7页

OAuth调用方式

第8页

OAuth的四种调用方式

第9页

Authorization Code

第10页

10
Implicit

第11页

Authorization Code的请求参数
https://api.weibo.com/2/oauth2 /authorize?client_id=1166443256&response_type=token&display=js&transport=html5&referer=http://jssdk.sinaapp.com/widget/login-button.php

第12页

Implicit的请求参数

第13页

OAuth风险分析

第14页

OAuth风险分析

第15页

信息泄露

第16页

信息泄露

第17页

CSRF

第18页

CSRF

第19页

CSRF

第20页

权限认证(scope)
漏洞风险处标红

第21页

URL回调污染
redirect_uri 回调地址:
开放平台填写不严格
授权服务器不验证或者验证不严格


漏洞风险:
可能导致 code 或者 access_token 泄露或者钓鱼

第22页

不区分调用方式
改改

第23页

如何优雅的利用OAuth漏洞

第24页

如何优雅的利用OAuth漏洞

第25页

劫持用户应用方身份

----- 会议笔记(14-8-14 15:20) -----
加案例  

第26页

劫持用户应用方身份

第27页

劫持用户应用方身份

第28页

劫持用户应用方身份

第29页

攻击过程

第30页

劫持用户授权方身份

第31页

劫持用户授权方身份

第32页

劫持用户授权方身份
篡改参数更改调用方式
Authorization Code
response_type = code
Code + Appsecret = access_token

Implicit
response_type = token
Request token = access_token
通过篡改参数绕过了Appsecret的限制,直接获得了access_token

第33页

劫持授权方身份

第34页

Access_token可能的利用方式

第35页

OAuth漏洞修复

第36页

OAuth漏洞修复
问题:

1.开放平台历史遗留
2.短时间内无法进行完全修复

BUG:

1.开放平台中 redirect_uri 不规范
2.redirect_uri 校验存在逻辑错误
3.不区分调用方式
无法确认请求方式的来源

第37页

OAuth漏洞修复
URL回调污染修复

日志分析,明确风险范围

校验全路径,暂不验证参数


至此,虽然漏洞没有完全修复,但是已经大大增加了漏洞的利用门槛,缩小了漏洞的范围

第38页

修复中的坑
还有很多种方式来进行绕过
redirect_uri=http://www.a.com%40passport.baidu.com

redirect_uri=http://www.a.com%3Fpassport.baidu.com

3.redirect_uri=http://www.a.com%5cpassport.baidu.com

4.redirect_uri=http://www.a.com:%5cpassport.baidu.com

5.redirect_uri=http://www.a.com\.passport.baidu.com

6.redirect_uri=http://www.a.com:\@passport.baidu.com
导致宣布修复以后还有问题
有台机器代码部署有问题
安全测试

第39页

Implicit的请求参数

第40页

OAuth漏洞修复

第41页

OAuth漏洞修复
最终修复方案

 将大型应用添加进白名单,严格验证开放平台回调地址

 非白名单进行全路径验证

 运营和产品推动,规范白名单内应用的回调地址,改完移出白名单,直到白名单清空



第42页

OAuth可能存在的风险

第43页

OAuth可能存在的风险

第44页

授权滥用
利用方式:

诱惑用户授权恶意应用
使用access_token进行诈骗、广告

解决方案:

封禁上行权限
直接封禁应用
脉脉恶意抓取用户信息

第45页

授权token被脱裤
微博某大型第三方应用被脱裤,影响广泛

第46页

问题的根源
2015-8-19
OAuth存储凭证上没有做任何加密措施

用户名密码存储:md5(密码+salt)

Access_token存储:明文

第47页

感谢


@ 长得吸引仇恨

@ 罗诗尧v

@ 余弦

第48页




Q & A

第49页

招(gui)聘(qiu)
安全测试工程师(应用安全方向)

职位描述:

负责核心业务的应用安全测试与风险评估,推动落地安全解决方案
自动化安全检测工具与日志分析系统的研发与功能&性能优化
负责核心项目的白盒代码审计(PHP)
公司内部安全编码与培训(应用安全/移动安全)
跟踪安全社区的安全动态,并进行漏洞分析、挖掘和前沿安全攻防技术的研究

岗位要求:

熟悉常见的安全漏洞原理,如(SQLi,XSS,CSRF),能够独立挖掘web或移动客户端安全漏洞
熟练使用php/python/perl/shell脚本中的至少一种语言
熟悉主流PHP框架,对PHP代码安全审计有一定了解,并能独立进行白盒代码review
良好的沟通、协调能力

weibo_sec@staff.weibo.com

欢迎活泼开朗的小伙伴加入我们!

第50页

支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。