缺陷编号:WooYun-2015-0127051
漏洞标题:利用QQ的一处小小的设计缺陷劫持其它网站用户帐号(以Discuz社区为例)
相关厂商:腾讯
漏洞作者:q601333824
提交时间:2015-07-16 16:23
公开时间:2015-07-17 20:15
漏洞类型:设计缺陷/逻辑错误
危害等级:中
自评Rank:5
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
Tags标签:
2015-07-16: 细节已通知厂商并且等待厂商处理中
2015-07-16: 厂商已查看当前漏洞内容,细节仅向厂商公开
2015-07-17: 厂商已经主动忽略漏洞,细节向公众公开
其实这个说是漏洞,也不算是漏洞,徘徊在安全线的边缘,只是设计的时候没考虑到,以前提交过这种漏洞,但是后来在思考这个漏洞的锅该丢给谁,最终看到度娘的认证机制,才发现这个漏洞产生不是单方面的,而是双方面的(容我喝一口茶,慢慢道来)
1.QQ网页,有个检测电脑正在的使用的QQ并且能快速登录的功能2.然后在快速登录抓包①.他先请求ptsingx连接(暂时这样取名,根据其中ptsingx参数取名),然后返回一个连接,如图
②.然后再利用上面图上返回的连接进行登录,如图
3.上面这个连接并不是一次性的,而是能多次使用,只要帐号不退出,在一段时间内那个连接可以无限使用(时间失效时间很长,可以无限使用,这个因素可以不考虑了)
4.注意:另一个窗口我用的是隐身模式,所以不会因为cook等因素的影响测试(不用打码了,测试完我就退出登录了,所以连接不用打码)
-------------------------------------------------------------------------------------------------3.接下来用Discuz官方社区为例,官方社区有个绑定QQ帐号,并且以后可以用QQ帐号登录的功能.把鼠标放在绑定按钮上,可以看见浏览器下方已经出现了绑定QQ的连接了
1 |
http://www.discuz.net/connect.php?mod=login&op=init&type=loginbind&referer=home.php?mod=spacecp&ac=plugin&id=qqconnect:spacecp |
4.然后当访问上面那个连接的时候,会直接跳到QQ帐号快速登录界面,然后倒计时,时间一到,QQ自动登录,然后绑定上社区的帐号了①.
1 |
http://www.discuz.net/connect.php?mod=login&op=init&type=loginbind&referer=home.php?mod=spacecp&ac=plugin&id=qqconnect:spacecp |
↓(访问,然后直接跳到下面的连接)②.
1 |
http://openapi.qzone.qq.com/oauth/show?which=ConfirmPage&display=pc&response_type=code&client_id=10000034&redirect_uri=http%3A%2F%2Fwww.discuz.net%2Fconnect.php%3Fmod%3Dlogin%26op%3Dcallback%26referer%3Dhome.php%253Fmod%253Dspacecp&state=ef63cab287010dcaf6e3d4e91f1de7e8&scope=get_user_info%2Cadd_share%2Cadd_t%2Cadd_pic_t%2Cget_repost_list |
5.然后并且开始倒计时,时间一到社区就会绑定上社区的帐号了
------------------------------------------------------------------------------------------------6.然后这个时候,有人会说,如果对方的电脑登录着QQ,就算访问我的连接登录帐号,在绑定帐号的时候会让我选择哪个QQ登录,不会倒计时自动登录,比如这种界面
7.一个小小的缺陷的就在这个点上,看上面的图,让我们选择登录的帐号,但是你有想过,为什么让我们选择??这个时候浏览器上,没有任何关于QQ空间的cook,才让你选择,如果你事先打开过空间登录过,他就不会出现选择帐号的界面,就会跳到正在登录的QQ帐号进行倒计时。如图
8.看见没,两个QQ都登录着,是否倒计时自动登录,却决于你刚才登录的QQ空间帐号来的
--------------------------------------------------------------------------------------9.总结一下上面的意思①.在QQ快速登录的时候,会显示帐号的敏感信息,并且这个连接,在一段时间内可以在其他电脑无限使用,只要我不退出帐号②.别的网站绑定帐号的时候,是否倒计时自动登录,却决于你刚才登录的QQ空间帐号来的③.另一方面就是Discuz官方社区没有进行二次验证,为什么这样说,比如拿度娘来说,他是有二次验证,百度帐号绑定QQ帐号的时候,不光QQ进行了认证,度娘还进行了二次验证,如图
④.这个就是我说的,为什么这个漏洞是双方面的,而不是单方面的漏洞!!!!!!-------------------------------------------------------------------------------------------10.然后,QQ还是很厉害,在快速登录跳转的时候,加了验证,做了一个测试,当登录QQ空间的连接从别的网站打开的时候,会验证Referer,导致直接拒绝访问,不能登录QQ空间,也就不能绑定了①.我在自己的网站,设置了一个连接,点击
②.点击跳转的时候,直接拒绝访问了
③.
----------------------------------------------------------------------------------------11.但是这个连接登录连接,限制不严格,如果来源是QQ空间,本地网页,QQ聊天窗口的话,不会拦截的-----------------------------------------------------------------------------------------12.下面我找了一个人测试(最近优衣库很火)①.有人在求优衣库的种子的时候, 我两个连接,就说两个连接,一个不能用,换另外一个
②.看吧,我什么都没干,我的QQ已经绑定他的社区帐号了,我的QQ这边有提示了,自己又测试了一下,可以登录对方的帐号,我用的是短链接,太长的连接没人敢点
1.漏洞证明看上面2.其实上面的意思说白了就是利用快速登录,泄漏的连接让对方访问 → 再利用选择帐号的小缺陷自动登录(测试没有隐藏自动登录页面,真实场景可以隐藏掉倒计时.) → 一些网站没有和百度一样,作二次验证
1.像这种登录连接,用完一次能扔就扔吧2.第一个请求可以查看这个登录连接,可以验证Referer,禁止别的来源查看=_=3.不要因为腾讯业务正在登录,就不用选择帐号了(其他接口也存在问题,比如QQ邮箱快速登录之类的)4.其他网站可以和度娘一样,进行绑定的二次验证(只测试了discuz社区,其他网站,就截个图)
危害等级:无影响厂商忽略
忽略时间:2015-07-17 20:15
非常感谢您的报告,经评估该问题并不存在,故此忽略。如果您有任何的疑问,欢迎反馈,我们会有专人跟进处理。
暂无
...这
看来以后需要弄个证明小视频=_=
@q601333824 这个并没有问题 不同的ip就不行了
@tzrj 测试过了,帮我测试的人在台州,我自己当时在杭州那么远不是ip的问题
测试的不错,感觉还是有点用的。
@hack2012 只是举了其中一个网站的例子,别的网站也有这情况,现在厂商说,问题不存在,换句话就是说,我随便弄几个假图骗rank???
@hack2012 我发现这两年,我骗到199rank也挺不容易的
这是什么漏洞啊
@鬼见愁 别人第一次访问第一个连接,他的电脑登陆上我的qq账号,其他网站不是有qq绑定然后快速登陆,然后再访问绑定连接,他的网站账号绑定上我的qq号了,我可以利用我的qq快速登陆他的账号了。这个连接不会受ip影响,但是有时间影响,远距离测试没问题
其实还是有用的,这么费劲厂商说无影响换我得气死。
文章太长,厂商懒得看了……洞主思路还是很猥琐的
@香草 这是证明过程,为了证明自己找的,如果不写的仔细,然后如果厂商修复忽略,来个死无对证怎么办
@q601333824 如果少写一个细节,说不定那个细节就成为忽略的借口,因为你没写,怎么证明那个细节因素没影响
@q601333824 我的意思是,你应该用简介的一句话概括一下这个漏洞先
原文连接
的情况下转载,若非则不得使用我方内容。