论坛
门户
内部优惠
喜欢
话题
VIP会员
搜索
新浪微博
登录
注册
100%
100%
首页
>
网络技术
>
网站安全
>
网易开放平台第三方应用oauth强制用户授权漏洞
回复
« 返回列表
灯火互联
管理员
注册日期
2011-07-27
发帖数
41778
QQ
火币
41290枚
粉丝
1086
关注
100
加关注
写私信
打招呼
阅读:
2813
回复:
0
网易开放平台第三方应用oauth强制用户授权漏洞
楼主
#
更多
只看楼主
倒序阅读
发布于:2013-01-18 15:01
保存
100%
100%
[]
1
利用此
漏洞
,在网易开放平台
注册
的第三方应用可以跳过询问用户是否授权的页面,而直接拿到用户的授权访问用户敏感信息
正常的oauth授权流程应符合如下几个步骤(假设网易用户已经登录):
1,在
http://t.163.com/app
点击应用
2,访问应用网址,比如:
http://158.132.255.52:25006/t163_php_sdk/index_normal.php
3, 应用访问
http://api.t.163.com/oauth/request_token
取得request token以及requesttoken secret
4, 应用从定向用户到网页,比如
http://api.t.163.com/oauth/authenticate?oauth_token=XXXXXXX;oauth_callback=XXXXXXX
,询问用户是否授权。此页面详细描述是向什么应用授予什么权限,以帮助用户做出选择
5, 用户点击授权按钮,浏览器向授权服务器
http://api.t.163.com/oauth/authenticate
发送相应的同意授权信息(POST命令)
6,应用用已经拿到授权的request token通过
http://api.t.163.com/oauth/access_token
换取accesstoken以及access token secret
此漏洞在于恶意的应用可以在第3步后直接忽略第4步,而执行第5步,因此在未得到用户同意(用户不知情)的情况下,拿到用户的授权
漏洞证明:为了验证漏洞的存在,我们创建了一个实验app:
应用名称:oauth_vulnerability_test
应用类型:工具类
Consumer Key:ulHM02MWX0CFx75u
应用创建时间:2012-11-29
我们的试验代码需要用户在点击应用前用已经登录网易,但是只要对代码稍微改进,即使用户在点击应用的时候未登录,我们也可以引导用户登录
访问
http://158.132.255.52:25006/t163_php_sdk/index_normal.php
可以体验正常的授权过程
访问
http://158.132.255.52:25006/t163_php_sdk/index_attack.php
可以直接观察到这个应用可以未经用户许可,拿到用户授权
图片:20130118105429202.jpg
图片:20130118105429514.jpg
图片:20130118105429531.jpg
修复方案:
建议在第4步用户访问
http://api.t.163.com/oauth/authenticate?oauth_token=XXXXXXX;oauth_callback=XXXXXXX
,加入随机码,在用户提交同意授权的表单中,需要同时提交这个随机码,以保证这个提交表单确实是用户同意的
喜欢
0
评分
0
最新喜欢:
淘宝天猫隐藏优惠券地址
回复
100%
发帖
回复
« 返回列表
普通帖
您需要登录后才可以回帖,
登录
或者
注册
100%
返回顶部
关闭
最新喜欢