人人网Oauth 2.0授权可导致用户access_token泄露

漏洞概要

缺陷编号:WooYun-2012-05804

漏洞标题:人人网Oauth 2.0授权可导致用户access_token泄露

相关厂商:人人网

漏洞作者:PiaCa

提交时间:2012-04-05 23:05

公开时间:2012-05-20 23:05

漏洞类型:敏感信息泄露

危害等级:高

自评Rank:10

漏洞状态:厂商已经确认

Tags标签:

漏洞详情

披露状态:

2012-04-05: 细节已通知厂商并且等待厂商处理中
2012-04-07: 厂商已经确认,细节仅向厂商公开
2012-04-17: 细节向核心白帽子及相关领域专家公开
2012-04-27: 细节向普通白帽子公开
2012-05-07: 细节向实习白帽子公开
2012-05-20: 细节向公众公开

简要描述:

人人网Oauth 2.0授权对第三方应用的redirect_uri限制不是很严格,如果第三方网站存在xss等可以诱导用户泄露其access_token。
不过人人网的api接口有sign验证,拿到access_token也很难利用。

详细说明:

刚发了个ku6的xss漏洞,是因为要用它来测试这个。1、登陆人人网2、访问该地址http://graph.renren.com/oauth/grant?client_id=cd271e3051444285b8a18f1211a095cd&redirect_uri=http://zone.ku6.com/u/17958620&response_type=token3、跳转到存在xss的酷6地址http://zone.ku6.com/u/179586202步中的人人那个地址是用来授权第三方的,response_type=token的授权请求只需要提供应用的client_id以及该应用申请时所填写的回跳地址redirect_uri,但是人人网并没有对redirect_uri进行严格检查,如果该redirect_uri域下存在xss漏洞,则可以诱导用户授权并劫持该用户的access_token。

漏洞证明:

访问结果如下:

修复方案:

应该根据需要严格检查redirect_uri,不应该对整个域设置为全部信任。

漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2012-04-07 23:17

厂商回复:

3Q

最新状态:

暂无

评价

  1. 2010-01-01 00:00 PiaCa 白帽子 | Rank:129 漏洞数:10)

    为了配合下这个,我还提交个ku6的呢。这个直接过,那个却要审核…………

  2. 2010-01-01 00:00 horseluke 白帽子 | Rank:108 漏洞数:18)

    缺陷关联: WooYun: 酷6网个人主页XSS (提交者缺陷测试组合)

  3. 2010-01-01 00:00 horseluke 白帽子 | Rank:108 漏洞数:18)

    @PiaCa ,我特意查了查OAuth 2.0的RFC文本。在“4.1.1. Authorization Request”中(http://tools.ietf.org/html/draft-ietf-oauth-v2-25#section-4.1.1 ),它确实要求redirect_uri是放在GET中,并且在后续的“4.1.3. Access Token Request”和“4.1.4. Access Token Response”中也不要求需要对code进行来源验证。这么说来,似乎是OAuth 2.0的考虑不周?

  4. 2010-01-01 00:00 horseluke 白帽子 Rank:108 漏洞数:18)

    @horseluke 貌似不对,4.1.3也提到“The authorization server MUST:require client authentication for confidential clients or for any client that was issued client credentialsor with other authentication requirements)”。人人网确实有义务要验证client来源的...

  5. 2010-01-01 00:00 葫芦 白帽子 | Rank:10 漏洞数:2)

    回调页面都要人工审核的吧

  6. 2010-01-01 00:00 xsser 白帽子 | Rank:152 漏洞数:17)

    @horseluke 是实现的时候的原因,google的demo里是做了限制的

  7. 2010-01-01 00:00 PiaCa 白帽子 | Rank:129 漏洞数:10)

    @horseluke OAuth 2.0的确要求来源的。我个人认为是人人没有对这个来源做严格限制而已。

  8. 2010-01-01 00:00 horseluke 白帽子 | Rank:108 漏洞数:18)

    外部关联:http://weibo.com/1679264133/ydnh9rB7y (开放平台架构师对OAuth 2.0的理解)。个人很赞其观点:"做开放平台的人要存在敬畏之心"。

  9. 2010-01-01 00:00 PiaCa 白帽子 | Rank:129 漏洞数:10)

    20Rank,人人给力啊