利用QQ的一处小小的设计缺陷劫持其它网站用户帐号(以Discuz社区为例)

漏洞概要

缺陷编号: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的连接了

4.然后当访问上面那个连接的时候,会直接跳到QQ帐号快速登录界面,然后倒计时,时间一到,QQ自动登录,然后绑定上社区的帐号了①.

            ↓(访问,然后直接跳到下面的连接)②.

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

厂商回复:

非常感谢您的报告,经评估该问题并不存在,故此忽略。如果您有任何的疑问,欢迎反馈,我们会有专人跟进处理。

最新状态:

暂无

评价

  1. 2010-01-01 00:00 Hax0rs 白帽子 | Rank:17 漏洞数:2)

    ...这

  2. 2010-01-01 00:00 q601333824 白帽子 | Rank:247 漏洞数:40)

    看来以后需要弄个证明小视频=_=

  3. 2010-01-01 00:00 tzrj 白帽子 | Rank:55 漏洞数:16)

    @q601333824 这个并没有问题 不同的ip就不行了

  4. 2010-01-01 00:00 q601333824 白帽子 | Rank:247 漏洞数:40)

    @tzrj 测试过了,帮我测试的人在台州,我自己当时在杭州那么远不是ip的问题

  5. 2010-01-01 00:00 hack2012 白帽子 | Rank:31 漏洞数:3)

    测试的不错,感觉还是有点用的。

  6. 2010-01-01 00:00 q601333824 白帽子 | Rank:247 漏洞数:40)

    @hack2012 只是举了其中一个网站的例子,别的网站也有这情况,现在厂商说,问题不存在,换句话就是说,我随便弄几个假图骗rank???

  7. 2010-01-01 00:00 q601333824 白帽子 | Rank:247 漏洞数:40)

    @hack2012 我发现这两年,我骗到199rank也挺不容易的

  8. 2010-01-01 00:00 鬼见愁 白帽子 | Rank:10 漏洞数:1)

    这是什么漏洞啊

  9. 2010-01-01 00:00 q601333824 白帽子 | Rank:247 漏洞数:40)

    @鬼见愁 别人第一次访问第一个连接,他的电脑登陆上我的qq账号,其他网站不是有qq绑定然后快速登陆,然后再访问绑定连接,他的网站账号绑定上我的qq号了,我可以利用我的qq快速登陆他的账号了。这个连接不会受ip影响,但是有时间影响,远距离测试没问题

  10. 2010-01-01 00:00 小安 白帽子 | Rank:0 漏洞数:0)

    其实还是有用的,这么费劲厂商说无影响换我得气死。

  11. 2010-01-01 00:00 香草 白帽子 | Rank:97 漏洞数:12)

    文章太长,厂商懒得看了……洞主思路还是很猥琐的

  12. 2010-01-01 00:00 q601333824 白帽子 | Rank:247 漏洞数:40)

    @香草 这是证明过程,为了证明自己找的,如果不写的仔细,然后如果厂商修复忽略,来个死无对证怎么办

  13. 2010-01-01 00:00 q601333824 白帽子 | Rank:247 漏洞数:40)

    @q601333824 如果少写一个细节,说不定那个细节就成为忽略的借口,因为你没写,怎么证明那个细节因素没影响

  14. 2010-01-01 00:00 香草 白帽子 | Rank:97 漏洞数:12)

    @q601333824 我的意思是,你应该用简介的一句话概括一下这个漏洞先