漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2012-015523
漏洞标题:网易通行证OAuth2.0认证在使用Access Token获取用户信息设计缺陷
相关厂商:网易
漏洞作者: 小胖胖要减肥
提交时间:2012-12-02 22:06
修复时间:2013-01-16 22:07
公开时间:2013-01-16 22:07
漏洞类型:账户体系控制不严
危害等级:中
自评Rank:10
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2012-12-02: 细节已通知厂商并且等待厂商处理中
2012-12-04: 厂商已经确认,细节仅向厂商公开
2012-12-14: 细节向核心白帽子及相关领域专家公开
2012-12-24: 细节向普通白帽子公开
2013-01-03: 细节向实习白帽子公开
2013-01-16: 细节向公众公开
简要描述:
之前提交了剑心说描述不够清楚那好,重新提交下,还特地在2大电商测试了下,并结合官方文档,确认是协议设计的隐患,毕竟作为一个第三方登陆平台,还涉及那么广,就应该更要重视任何一个细小点
详细说明:
首先打开京东,看到了第三方的网易登陆,当然要试下了,之前爆了很多oauth的问题
之后输入用户名密码登录,当然登陆成功了,不过查看登陆数据的时候发现其实最后起到登录作用的是http://qq.360buy.com/new/netease/callback.aspx?username=8202378786&ts=20121202205444&sign=4ED3AE3FF504043411743F1A702FC649495CE94CE8078DBACA2D056A21BBE49F5205CEC5DBF08AD089A92FBBE6D7001DF9DAF0FC6ECE9A5A3FC9294CD586A87D9B453D4154AF19F5E2319C115AF8FA487A3D6055AB1351A6184D219931A8B1CE
地址已做处理,要弄证明自己试一下就知道了
于是就让朋友在他电脑上试一下,并看看我写的那些用户信息能不能看到,结果果不其然,没有对是否是当前用户,即输入用户名密码的那个用户作校验,安全隐患啊
最关键的这个链接还是http的,危害程度不用说了,在局域网嗅探或公共wifi登录都有可能被人截获这个地址,说不定电商账户还有钱呢
虽然我知道sign换取令牌是有时效的,具体不知道多久,但这点时间已经足够盗取客户信息和账户余额了吧,而作为第三方登录平台其他网站说不定收获更多
漏洞证明:
然后我去看了下官方文档
使用Access Token获取用户信息
URL:
https://reg.163.com/open/oauth2/getUserInfo.do
HTTP请求方式:
GET
请求参数:
1. access_token: 第二步获得的access_token
返回值:
userId: 用户数字Id(长度不会超过15位)
username: 用户账户名称(如果用户在登录的时候不选择共享账户名称,则只返回userId,所以请以userId作为用户的唯一标识)
返回示例:
{"username":"urstest_mreg","userId":"820014421"}(如果用户在登录的时候不选择共享账户名称,则返回:{"userId":"820014421"})
果然是对是否是当前用户没有做校验啊,既然对于oauth认证你之前是要输入用户名密码的,你也会得到输入用户名秘密的用户信息,那么在最后获取用户信息的时候肯定要校验是否是那个输入用户名密码的用户啊,这个是最基本的
修复方案:
既然之前有输入过用户名密码,那么那个时候应该可以设置一个state放在cookies里,最后在用户输入url换取令牌的时候校验这个state是否是之前输入用户名密码的那个
版权声明:转载请注明来源 小胖胖要减肥@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:5
确认时间:2012-12-04 14:04
厂商回复:
感谢您对网易的关注,漏洞已经修复。
最新状态:
暂无