当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(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标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-12-02: 细节已通知厂商并且等待厂商处理中
2012-12-04: 厂商已经确认,细节仅向厂商公开
2012-12-14: 细节向核心白帽子及相关领域专家公开
2012-12-24: 细节向普通白帽子公开
2013-01-03: 细节向实习白帽子公开
2013-01-16: 细节向公众公开

简要描述:

之前提交了剑心说描述不够清楚那好,重新提交下,还特地在2大电商测试了下,并结合官方文档,确认是协议设计的隐患,毕竟作为一个第三方登陆平台,还涉及那么广,就应该更要重视任何一个细小点

详细说明:

首先打开京东,看到了第三方的网易登陆,当然要试下了,之前爆了很多oauth的问题

1.jpg


之后输入用户名密码登录,当然登陆成功了,不过查看登陆数据的时候发现其实最后起到登录作用的是http://qq.360buy.com/new/netease/callback.aspx?username=8202378786&ts=20121202205444&sign=4ED3AE3FF504043411743F1A702FC649495CE94CE8078DBACA2D056A21BBE49F5205CEC5DBF08AD089A92FBBE6D7001DF9DAF0FC6ECE9A5A3FC9294CD586A87D9B453D4154AF19F5E2319C115AF8FA487A3D6055AB1351A6184D219931A8B1CE
地址已做处理,要弄证明自己试一下就知道了
于是就让朋友在他电脑上试一下,并看看我写的那些用户信息能不能看到,结果果不其然,没有对是否是当前用户,即输入用户名密码的那个用户作校验,安全隐患啊

2.jpg


最关键的这个链接还是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

厂商回复:

感谢您对网易的关注,漏洞已经修复。

最新状态:

暂无


漏洞评价:

评论

  1. 2012-12-02 22:13 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )

    @xsser 还有2个,wooyun-2012-015442,wooyun-2012-015467,oschina那个已经和红薯说好了 20rank

  2. 2012-12-02 23:38 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @小胖胖要减肥 不带和人说好一起刷分的

  3. 2012-12-02 23:40 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )

    @xsser 畅图网的给我审了啊 oschina的我重新编辑了下,我觉得可以加精了 你看看呗 这个rank也是靠自己做了很多事才挣来的

  4. 2012-12-02 23:53 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )

    @xsser http://www.wooyun.org/bugs/wooyun-2012-015442/trace/368ab0908d54a20e668472aebbaa5268 这个审一下,听说这个厂商有礼物,还没收到过礼物,也提过一些对厂商有用的漏洞了

  5. 2012-12-09 19:44 | se55i0n ( 普通白帽子 | Rank:1567 漏洞数:173 )

    @小胖胖要减肥 高端刷分呀~厂商有你的基友?

  6. 2012-12-09 19:45 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )

    @se55i0n 没有 自己看了官方文档的,然后我们公司也有用这个第三方登陆,试了一下就出来了

  7. 2013-01-17 16:17 | horseluke ( 普通白帽子 | Rank:116 漏洞数:18 | Realize the dream in earnest.)

    严格来说,这个责任本来属于京东的逻辑漏洞...不过没想到网易没推脱,而是作了改进防御,赞...

  8. 2013-01-17 16:20 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )

    @horseluke 我感觉不是,很多网站和京东一样,根据官方文档开发,一切以官方文档为准,不过网易当时修复真的快,就是没礼物

  9. 2013-01-17 16:32 | horseluke ( 普通白帽子 | Rank:116 漏洞数:18 | Realize the dream in earnest.)

    @小胖胖要减肥 根据标准的说法,从分工来讲,接入的应用本身是必须要防御CSRF的(state参数也好redirect_uri也好都是这个目的,见http://zone.wooyun.org/content/1562 );何况信息交换是在服务器端进行的,如果第三方应用不主动上报客户端信息给网易接口,是根本区分不了客户端情况的,所以很好奇网易怎样能防御。另,看了好几遍,感觉163这个不像是标准OAuth的流程,而是一套以往的合作方登录接口规范...

  10. 2013-01-17 16:37 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )

    @horseluke 估计是传参多传了很多参数,然后交换令牌的时候获取一个参数做验证吧

  11. 2013-01-17 16:45 | horseluke ( 普通白帽子 | Rank:116 漏洞数:18 | Realize the dream in earnest.)

    @小胖胖要减肥 也只有可能是这样了;反正确实赞网易主动为客户着想的做法,换我可能只会推给是应用的缺陷...