漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2012-015550
漏洞标题:网易开放平台第三方应用oauth强制用户授权漏洞
相关厂商:网易
漏洞作者: 小点兵
提交时间:2012-12-03 15:59
修复时间:2013-01-17 16:00
公开时间:2013-01-17 16:00
漏洞类型:设计缺陷/逻辑错误
危害等级:中
自评Rank:8
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2012-12-03: 细节已通知厂商并且等待厂商处理中
2012-12-04: 厂商已经确认,细节仅向厂商公开
2012-12-14: 细节向核心白帽子及相关领域专家公开
2012-12-24: 细节向普通白帽子公开
2013-01-03: 细节向实习白帽子公开
2013-01-17: 细节向公众公开
简要描述:
利用此漏洞,在网易开放平台注册的第三方应用可以跳过询问用户是否授权的页面,而直接拿到用户的授权访问用户敏感信息
详细说明:
正常的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以及request token 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 换取access token以及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 可以直接观察到这个应用可以未经用户许可,拿到用户授权
修复方案:
建议在第4步用户访问http://api.t.163.com/oauth/authenticate?oauth_token=XXXXXXX&oauth_callback=XXXXXXX, 加入随机码,在用户提交同意授权的表单中,需要同时提交这个随机码,以保证这个提交表单确实是用户同意的
版权声明:转载请注明来源 小点兵@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:5
确认时间:2012-12-04 14:04
厂商回复:
感谢您对网易的关注,漏洞已经修复。
最新状态:
暂无