您现在的位置是:系统运维 >>正文
从扫码登录的原理分析QQ大量被盗事件
系统运维55621人已围观
简介6 月 26 号晚上,大量 QQ 被盗的新闻一度冲上微博热搜。很多人反映自己的 QQ 不受控制地发送大量违规图片。6 月 27 号早上,腾讯 QQ 官方下场发了公告。公告总结来说就是“用户扫了钓鱼二维 ...
6 月 26 号晚上,从扫大量 QQ 被盗的码登新闻一度冲上微博热搜。很多人反映自己的原理 QQ 不受控制地发送大量违规图片。
6 月 27 号早上 ,分析腾讯 QQ 官方下场发了公告 。大量

公告总结来说就是被盗“用户扫了钓鱼二维码,和腾讯无关” 。事件
到底和腾讯有关吗 ?从扫我们来分析分析。
扫码登录先看 QQ 扫描登录的码登流程,大致分为三个阶段:
二维码展示阶段扫码阶段登录确认阶段
先简单过一下登录流程 :
用户打开电脑 QQ 。原理电脑 QQ 显示一个二维码。分析用户拿起手机扫码 。大量电脑 QQ 显示“扫码成功 ,服务器租用被盗请用 QQ 手机版确认”。事件手机 QQ 显示“您正在一台新设备登录 QQ”,从扫让用户选择请选择登录还是拒绝。用户选择登录,电脑 QQ 登录成功,整个流程结束。根据用户的行为画出整个时序图 :

这套扫码登录的流程在业界被广泛地使用,也足以证明其合理性 。
过程一共有四个参与者,分别是 :用户、手机、电脑 、云计算腾讯 QQ 服务器。
黑客无法伪造用户、手机、和腾讯 QQ 服务器这三个参与者,但是可以在电脑端上动手脚,这次的盗号事件,正是如此 。
到底是怎么攻击的呢?我们往下看。
黑客如何盗号根据我了解到的一些信息,我大胆猜测一下盗号的高防服务器过程:
网吧里面的 WeGame 被黑客注入了,然后黑客用手表 QQ 的登录二维码伪装成 WeGame 的登录二维码,劫持了用户的授权信息,黑客利用授权信息和腾讯服务器交互,批量发送图片。
按照我的推论,还原一下犯罪现场 :
首先,黑客入侵一个大的网吧管理服务商 ,在 WeGame 这个软件上面注入一层钓鱼入口。
然后这个服务商下的免费模板网吧下载了这个被注入的 WeGame 。
用户去网吧上网 ,打开 WeGame 的时候同时也打开了钓鱼入口。

这个钓鱼入口输入账号密码显示登录错误。
于是 ,用户只能扫码登录,用户一扫描 ,看到的却是登录手表 QQ。
用户感到疑惑,但是也没有想太多 ,模板下载点了确定登录 。
授权成功 ,黑客拿到授权信息。

整个过程黑客并没有直接盗取到你的账号密码 ,只是通过“钓鱼”拿到了你的授权信息。
而腾讯的服务器,只认授权信息不认人,只要授权信息是对的,不管谁去请求,腾讯都会放行。源码库
就这样 ,黑客得到了服务器的信任,让你的账号批量发送图片 。
回答按照上面的推论,会有几个问题:
1.为什么没有把被盗号的人挤下线 。
上面提到了 ,黑客拿到的是手表 QQ 的授权信息 ,手表QQ 和手机 QQ 以及电脑 QQ 都不冲突 。
也就是说,即使你手机 QQ 在线,黑客也能发送消息 ,甚至你一边撤回,黑客还能一边继续发图片 。
2.类似大量盗号事件是不是第一次 ?
不是。早在五月份就有类似的案例 ,但看起来腾讯并没有重视。
3.为什么 QQ 经常被盗,但是微信没有这种情况 ?
QQ 诞生于 1999 年,属于远古时代的产物 ,历史遗留问题比较多。
微信诞生于 2011 年,跳过了 QQ 踩过的一些坑 ,权限把控得也更严格。
虽然功能上微信没有 QQ 强大,但安全方面一直做得比 QQ 要好。毕竟安全是微信和支付宝这种带有金融属性的软件的根基,安全做不好是玩不下去的 。
4.为什么没有扫过任何码 QQ 也被盗了?为什么三百年没用过的 QQ 也被盗了 ?为什么有些去世的人的 QQ 也被盗了 ?
如果真的有这种情况,那我也没法解释 ,只能让腾讯来解释了 。
一些其他看法上面是我根据网上的信息推测处理的 ,网络上还有其他的观点 。
比较主流的是“学习通信息撞库”和“js 劫取授权信息”。
学习通撞库
这种说法的核心是 :学习通泄漏了用户的信息,然后有些用户学习通的密码和 QQ 密码设置的是一样,间接导致用户 QQ 密码泄漏 。
我个人觉得这种可能性很低 。
为什么呢?
第一,腾讯和学习通这种体量的 APP 肯定会对用户密码脱敏加密处理 ,并不能直接撞库攻击 。
第二 ,就算破解了加密方式,拿到了用户的密码 ,也很难直接登录用户的 QQ 。因为在登录的时候,会触发新设备登录验证,如果拿不到用户的登录验证码,是没有办法登录成功的。
JS 取授权信息
根据酷安大佬@JiuXia2025 的说法,此次大量 QQ 被盗是因为用户点了某个链接 ,然后被 js 劫取了浏览器里面的 Cookie ,黑客从中拿到了能控制 QQ 账号的 key ,从而批量发送图片 。

图片来自于why技术
对于大佬的实力,我不怀疑。
对于大佬的观点,我保持一个怀疑的态度 。
第一,我不相信这么多年过去了 ,腾讯还没有对 js 攻击做防护。
第二 ,我不认为在 QQ 里面点开一个链接,QQ 会给浏览器授权具备“发送消息”的权限。如果没有“发送消息”的权限 ,就算浏览器的授权信息算被 js 劫取也没有任何意义。
总结总结一下我的观点就是 :
一个有钱人家里钱太多了总是被偷,于是这个有钱人花重金打造了世界上最牛的门,开门需要经过二十四道机关和五次密码确认,最后还需要验证指纹和人脸。
即使这样,这个有钱人的钱还是被偷了。
为什么还会被偷呢 ?
记者采访了这个有钱人。
这个有钱人只说了一句话 :一切责任尽在用户 。
写在最后吃瓜归吃瓜 ,还是要搞技术的,我预估扫码登录的流程会成为近期热门面试题 。
为什么呢?
第一 ,可以验证候选人对技术有没有敏锐的捕捉力。
第二,可以很好地延伸到其他技术点 。比如 :
Redis 过期时间怎么设置?项目中有用到过吗?Token 、Cookie、Session 三者有什么区别?为什么要轮询二维码状态 ?用 Http 长连接不行吗?用 Websocket 不行吗 ?还有哪些常见的攻击手段 ?应对措施分别是什么?了解 OAuth2.0 和 JWT 吗 ?你看 ,这一套组合拳下来是不是行云流水、一气呵成?
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“信息技术视野”。http://www.bziz.cn/news/293d899698.html
上一篇:如何应对供应链中第三方的安全风险
下一篇:软件开发中的密码与密钥管理
相关文章
谷歌研究称:2022 年的零日漏洞有一半是先前漏洞的变种
系统运维Google Project Zero 在 2022 年上半年共观察到 18 个被利用的零日漏洞,其中至少有一半存在,因为之前的漏洞没有得到妥善解决。根据 Google Project Zero 研究 ...
【系统运维】
阅读更多使用Bootice进行引导修复的完全指南(一站式解决电脑引导问题的高效工具)
系统运维在使用电脑的过程中,我们时常会遇到引导问题导致无法正常启动系统的情况。而引导修复工具Bootice则是一款强大而便捷的工具,可以帮助我们快速解决这些问题。本文将详细介绍如何正确使用Bootice进行引 ...
【系统运维】
阅读更多Windows10的Android应用程序支持:这是您需要知道的
系统运维微软的新计划代号为Latte,将允许用户在Windows 10 PC上运行他们喜欢的Android应用程序。如果获得高层领导的批准,该项目将允许开发人员仅使用打包对话工具即可将其Android应用程序 ...
【系统运维】
阅读更多