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

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

缺陷编号:wooyun-2012-015620

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

相关厂商:天涯社区

漏洞作者: 小点兵

提交时间:2012-12-04 18:29

修复时间:2013-01-18 18:29

公开时间:2013-01-18 18:29

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

危害等级:中

自评Rank:8

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

利用此漏洞,在天涯开放平台注册的第三方应用可以跳过询问用户是否授权的页面,而直接拿到用户的授权。拿到授权后,恶意的第三方应用可以访问用户敏感信息,冒充用户发布微博信息等

详细说明:

正常的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=XXXX&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访问用户的隐私信息,甚至以用户的名义发布微博
此漏洞在于恶意的应用可以在第3步后直接忽略第4步,而执行第5步,因此在未得到用户同意(用户不知情)的情况下,拿到用户的授权。更大的危害在于,攻击者甚至可以直接构造第5步的链接,然后发送到各个社交网络上,诱骗用户点击。由于少了第4步的保护,用户会在不知情的情况下授权,攻击者拿到授权后,就可以以用户的名义在天涯微博上发布信息,欺骗用户的朋友以获取利益

漏洞证明:

为了验证漏洞的存在,我们创建了一个实验app:
创建时间: 2012-12-04 06:54:33
你的应用‘VulnerabilityTest’
App Key:204dc490d919188289a56c720c889727050bd9e29
App Secret:4eaad635c06802422f5d455cf8a308c2
我们的试验代码需要用户在点击应用前用已经登录网易,但是只要对代码稍微改进,即使用户在点击应用的时候未登录,我们也可以引导用户登录
访问 http://158.132.255.52:25006/tianya_sdk_php/oauth_normal.php 可以体验正常的授权过程
访问 http://158.132.255.52:25006/tianya_sdk_php/oauth_attack_force_auth.php 可以直接观察到这个应用可以未经用户许可,拿到用户授权

tianya_list.jpg


tianya_1.jpg


tianya_3.jpg


修复方案:

建议在第4步用户访问http://open.tianya.cn/oauth/authorize.php?oauth_token=XXXX&consumer_key=XXXX&oauth_callback=XXXX, 加入随机码,在用户提交同意授权的表单中,需要同时提交这个随机码(或者用户cookie),以保证这个提交表单确实是用户同意的

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:3

确认时间:2012-12-05 11:25

厂商回复:

感谢提供,正在联系相关负责人修复。 :)

最新状态:

暂无


漏洞评价:

评论

  1. 2012-12-04 21:27 | 小点兵 ( 普通白帽子 | Rank:126 漏洞数:13 | 这个人很懒。。。)

    不好意思,在漏洞证明中,提供的链接写错了,已经提交了修正。正在等待审核更新。http://[IP]/t163_php_sdk/index_attack.php 是错误的链接http://[IP]/tianya_sdk_php/oauth_attack_force_auth.php 才是正确的链接

  2. 2012-12-05 09:09 | Adra1n ( 普通白帽子 | Rank:437 漏洞数:68 )

    这个该算是csrf问题

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

    @Adra1n 同意的

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