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

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

缺陷编号:wooyun-2012-015625

漏洞标题:天涯开放平台第三方应用oauth冒名授权漏洞

相关厂商:天涯社区

漏洞作者: 小点兵

提交时间:2012-12-04 22:17

修复时间:2012-12-05 11:30

公开时间:2012-12-05 11:30

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

危害等级:高

自评Rank:10

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-12-04: 细节已通知厂商并且等待厂商处理中
2012-12-05: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

利用此漏洞,在天涯开放平台注册的第三方应用可以冒充其他任何应用骗取用户的授权。利用这个漏洞,攻击者可以以及其隐蔽的方式偷取用户的授权而不被发现 (用户应用列表中只会显示用户授
权给了被冒充的应用,而真实的攻击者应用被隐藏)

详细说明:

正常的天涯开放平台oauth授权流程应符合如下几个步骤:
1,在http://apps.tianya.cn/点击应用
2,访问应用网址,比如:http://158.132.255.52:25006/tianya_sdk_php/oauth_normal.php
3, 应用访问http://open.tianya.cn/oauth/request_token.php取得request token
4, 应用重定向用户到询问是否授权网页,比如 http://open.tianya.cn/oauth/authorize.php?oauth_token=XXXX&consumer_key=[APP Key]&oauth_callback=XXXX, 询问用户是否授权。此页面详细
描述是向什么应用授予什么权限,以帮助用户做出选择
5, 用户点击授权按钮,浏览器向授权服务器http://open.tianya.cn/oauth/authorize.php?consumer_key=XXXX 发送相应的同意授权信息 (POST命令)
6,应用用已经拿到授权的request token通过http://open.tianya.cn/oauth/access_token.php 换取access token
7,拿到access token后,应用就可以用这个token访问用户的隐私信息,甚至以用户的名义发布微博
此漏洞在于恶意的应用可以在第4步中将consumer_key=[APP Key 1]换成consumer_key=[APP Key 2],从而使用户授权提示页面显示成APP Key 2所指代的应用,从而让用户误以为是在给APP 2授权。
其实真正拿到access token的是APP 1。
利用这个漏洞,任何攻击者都可以自己注册一个APP,然后在冒充其他流行的APP骗取用户授权。值得注意的是,天涯平台的access token权利很大,比如竟然可以用来发微博。。。

漏洞证明:

为了验证漏洞的存在,我们创建了一个实验app:
创建时间: 2012-12-04 06:54:33
你的应用‘VulnerabilityTest’
App Key:204dc490d919188289a56c720c889727050bd9e29
App Secret:4eaad635c06802422f5d455cf8a308c2
访问 http://158.132.255.52:25006/tianya_sdk_php/oauth_attack_impersonate_auth.php 可以直接观察到应用‘VulnerabilityTest’冒充应用大侠传骗取用户授权

tianya_21.jpg

修复方案:

建议修复方法有3:
1,将consumer_key和注册的callbackURL进行绑定,这样返回的授权token就只能传给授权页面所显示的应用的domain
2,在询问授权页面http://open.tianya.cn/oauth/authorize.php?oauth_token=XXXX&consumer_key=[APP Key]&oauth_callback=XXXX 上加入应用私钥的签名信息,即用App Secret对页面进行签名
3,对request token和App Key进行绑定,即对URL http://open.tianya.cn/oauth/authorize.php?oauth_token=XXXX&consumer_key=[APP Key]&oauth_callback=XXXX 中的oauth_token和
consumer_key进行绑定

版权声明:转载请注明来源 小点兵@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2012-12-05 11:30

厂商回复:

与 WooYun-2012-15620 是相同问题。 :) 正在处理

最新状态:

暂无


漏洞评价:

评论

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

    还是老问题 之判断参数有没有效,没有进行参数绑定校验,还有任何一步都要加上是否是当前用户所发出的信息进行验证,防止劫持

  2. 2012-12-05 18:45 | 小点兵 ( 普通白帽子 | Rank:126 漏洞数:13 | 这个人很懒。。。)

    我不觉得这个漏洞和WooYun-2012-15620是相同问题,即使厂商修复了WooYun-2012-15620,本漏洞还是存在。需要厂商用另外的代码修复。当然,如果在WooYun-2012-15620没有修复的情况下,这个漏洞有点多余,毕竟WooYun-2012-15620直接忽略了授权页面。但,即使如此,这个漏洞比WooYun-2012-15620还是有好处的,因为它可以使用户“被授权”后,即使查看自己的授权应用列表,也发现不了自己被授权