当前位置: 首页 > 科技观察

从扫码登录原理分析QQ群发盗窃事件

时间:2023-03-18 13:58:10 科技观察

6月26日晚,QQ大量被盗的消息一度冲上微博热搜。许多人反映,他们的QQ不受控制地发送了大量非法图片。6月27日上午,腾讯QQ官方发布公告。公告摘要为“用户扫描钓鱼二维码,与腾讯无关”。跟腾讯有关系吗?我们来分析分析。扫码登录先看QQ扫码登录流程,大致可以分为三个阶段:二维码展示阶段、扫码阶段、登录确认阶段,先是一个简短的登录流程:用户打开电脑QQ.电脑QQ显示一个二维码。用户拿起手机扫码。电脑QQ显示“扫码成功,请用QQ手机版确认”。手Q显示“您正在使用新设备登录QQ”,让用户选择是否登录。用户选择登录,电脑QQ登录成功,整个流程结束。根据用户的行为画出整个时序图:这套扫码登录流程在业界被广泛使用,足以证明其合理性。过程中有四个参与者,分别是:用户、手机、电脑、腾讯QQ服务器。黑客无法伪造用户、手机、腾讯QQ服务器这三个参与者,但可以操纵电脑。这起盗号事件就是这样。它是如何攻击的?我们往下看。黑客是如何盗取账号的根据了解到的一些资料,大胆猜测盗取账号的过程:网吧的WeGame被黑客注入,然后黑客利用手表的QQ登录二维码伪装成登录二维码WeGame代码,劫持用户授权信息,黑客利用授权信息与腾讯服务器进行交互,批量发送图片。根据我的推断,还原案发现场:首先,黑客入侵了一家大型网吧管理服务商,在WeGame软件上注入了一层钓鱼入口。然后服务商下属的网吧下载了注入的WeGame。当用户去网吧上网时,打开WeGame时,钓鱼入口也同时打开。输入此网络钓鱼门户的帐户密码显示登录错误。因此,用户只能扫码登录,用户扫一扫,看到的是登录手表QQ。用户疑惑,但也没多想,点确定登录,授权成功,黑客拿到授权信息。整个过程中,黑客并没有直接盗取您的账户密码,只是通过“钓鱼”的方式获取了您的授权信息。而腾讯的服务器只认授权信息不认人。只要授权信息正确,不管是谁要求的,腾讯都会放过。这样黑客就取得了服务器的信任,要求你的账号批量发送图片。回答根据以上推断,会有几个问题:1、被黑号的人为什么没有被推下线。如上所述,黑客获取的是手表QQ的授权信息,手表QQ、手机QQ、电脑QQ之间不存在冲突。也就是说,即使你的手机QQ在线,黑客仍然可以发消息,即使你退出,黑客也可以继续发图片。2、大量黑客事件是第一次发生吗?不。早在5月份就有类似的案例,但腾讯似乎并没有把它当回事。3、为什么QQ经常被盗,微信却不会?QQ诞生于1999年,是远古时代的产物,有很多历史遗留问题。微信诞生于2011年,跳过了QQ踩过的一些坑,权限控制更严格。微信虽然在功能上不如QQ强大,但在安全方面一直比QQ做得好。毕竟,安全是微信、支付宝等具有金融属性的软件的基础。安全性没做好,就没法玩了。4、QQ为什么不扫码就被盗了?为什么三百年不用的QQ也被盗了?为什么有些死者的QQ也被盗了?如果真有这种情况,那我也没法解释,只能让腾讯解释了。其他一些意见是我根据网上的资料推测的,网上还有其他意见。比较主流的是“学习通讯信息凭证库”和“js劫持授权信息”。学通冲酷声明的核心是:学通泄露用户信息,继而部分用户学会使用与QQ密码相同的密码,间接导致用户QQ密码泄露。我个人认为这种可能性很小。为什么?第一,腾讯、学通这种规模的APP,肯定会对用户密码进行脱敏加密,不能直接攻击数据库。第二,即使破解了加密方式,获取了用户密码,也很难直接登录用户的QQ。因为在登录的时候,会触发新设备的登录验证。如果无法获取用户的登录验证码,则无法登录成功。JS获取授权信息据@JiuXia2025介绍,此次大量QQ被盗是因为用户点击了某个链接,然后js劫持了浏览器中的cookie,黑客从中获取了控制QQ账号的密码。键批量发送图片。图片来自何科技。老大的实力,我丝毫不怀疑。我对大佬的观点持怀疑态度。第一,我不相信这么多年了,腾讯居然没有防御js攻击。第二,我不认为你在QQ里点击一个链接,QQ会授权浏览器有“发送消息”的权限。如果没有“发送消息”权限,即使浏览器的授权信息被js劫持了,也没有任何意义。总结一下,我的观点是:有钱人家里的钱太多,总是被偷,所以这位有钱人花重金打造了世界上最好的门,需要经过24道机关和五码开门确认,最后需要验证指纹和人脸。尽管如此,富人的钱还是被偷走了。为什么还是被盗?记者采访了这位富豪。这位富豪只说了一句话:一切责任在用户。写在最后吃瓜吃瓜。搞技术还是很有必要的。我预计,在不久的将来,扫描和登录的过程将成为一个热门的面试问题。为什么?首先,可以验证候选人是否对技术有敏锐的把握。第二,可以很好的推广到其他技术点。例如:如何设置Redis的过期时间?有在项目中使用过吗?Token、Cookie、Session有什么区别?为什么要轮询二维码状态?不能用Http长连接吗?不能使用Websocket?还有哪些常见的攻击手段?对策是什么?了解OAuth2.0和JWT?你看,这一套组合拳是不是流畅流畅,一气呵成?