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

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-012683

漏洞标题:百度开放平台oauth授权接口可以劫持access_token

相关厂商:百度

漏洞作者: 心伤的胖子

提交时间:2012-09-25 10:05

修复时间:2012-11-09 10:06

公开时间:2012-11-09 10:06

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

Oauth2.0相比较Oauth1.0步骤简化,通过HTTPS和限制回调地址来提高安全性。但是各互联网公司的业务在对Oauth2.0的实现上并没有完全按照Oauth2.0的标准来做。所以就会有一些问题存在。比如对回调地址限制不严格就会造成问题。

详细说明:

详细的步骤如下:
1、结合 WooYun: 去哪儿一处存储型XSS漏洞 这个漏洞(应该审核通过了吧)
2、百度账号可以登录qunar网站,通过百度账号连接服务
3、授权模式中的Implicit grant模式只需要client_id和redirect_uri就可以完成账号的授权流程,从而把获取到的access_token返回到redirect_uri页面中
4、构造如下的URL:
http://openapi.baidu.com/oauth/2.0/authorize?scope=super_msg&response_type=token&client_id=RCKbWANx8KewnXs9rwGWFtZV&redirect_uri=http://lvtu.qunar.com/mobile_ugc/web/album.htm?albumId=4228
client_id为qunar网的百度应用ID
redirect_uri为获取access_token后的回调地址
response_type=token是采用Implicit grant授权模式
scope为申请的权限
5、可以把该地址发给他人诱使别人连接,最方便的利用是结合点击劫持来让用户完成授权流程。从而劫持到用户的access_token
6、获取到的token可以利用api接口来操作该账号(百度的api少的可怜)。

漏洞证明:

下面图是劫持后的。

修复方案:

1、最好是严格限制redirect_uri,我知道很难。
2、可以在授权页面加入放点击劫持代码,降低风险

版权声明:转载请注明来源 心伤的胖子@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2012-09-25 13:20

厂商回复:

感谢你对百度安全的关注,我们马上安排处理。

最新状态:

2012-11-09:该漏洞已于2012-10-12修复上线。


漏洞评价:

评论

  1. 2012-09-25 10:16 | 心伤的胖子 ( 普通白帽子 | Rank:308 漏洞数:29 | 因为心伤,所以胖子。)

    貌似中间一些细节没有写太清楚!

  2. 2012-09-25 10:57 | xcl0ud ( 路人 | Rank:1 漏洞数:2 )

    赞思路!已经说清楚了!

  3. 2012-09-25 11:09 | 心伤的胖子 ( 普通白帽子 | Rank:308 漏洞数:29 | 因为心伤,所以胖子。)

    @xcl0ud 楼上能看到?????? 谁的马甲!

  4. 2012-09-25 12:43 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @心伤的胖子 估计是百度那边的人吧~~

  5. 2012-09-25 12:59 | 心伤的胖子 ( 普通白帽子 | Rank:308 漏洞数:29 | 因为心伤,所以胖子。)

    @gainover 哈哈 想到了!

  6. 2012-11-10 12:55 | 陈再胜 ( 普通白帽子 | Rank:121 漏洞数:13 | 微博收收听~~~●﹏●)

    你真的不是黑哥么?