QQ被盗的自救、事故分析

作为一名网安学院的研究生,QQ权限竟然被盗了,起因是源于在手机QQ的空间里面扫了评论区发送的二维码,二维码如下,这个二维码目前应该是扫不的。
在这里插入图片描述

事故回顾

1.首先,当我用手机扫描二维码之后,进入了一个授权界面,这个界面与平常的授权界面差不多,但是让我授权之后,发现就直接退出浏览界面,并没有下一步的操作。于是我又重复扫了两次,还是一样的结果。
2.此时,我就在想自己是不是授权了某个不正常的网站,授权页面只是一个跳板,为了获取我的QQ账户信息。
3.两个多小时后,发现有人给我的QQ空间点赞,发现自己的QQ空间发了一个广告,并且在好友的留言板也发送了广告
4.起初还以为只是获取下我的QQ账户基本信息,没想到竟然连我的QQ空间权限都能拿到,这必须要好好分析一下。

技术分析

1.第一步,当然是直接看看这个二维码里面有啥,于是基于zxing写了一个解码器:

import zxing
reader = zxing.BarCodeReader()
barcode = reader.decode(r'D:\Python\pytorchLearn\QRCode\2.jpg')
print(barcode)

二维码界面之后如下:
在这里插入图片描述

BarCode(raw='http://txz.qq.com/p?k=RvavEHqTh9Bx657kM*iNDFnJ8z9N5itN', parsed='http://txz.qq.com/p?k=RvavEHqTh9Bx657kM*iNDFnJ8z9N5itN', path='/D:/Python/pytorchLearn/QRCode/2.jpg', format='QR_CODE', type='URI', points=[(33.5, 167.0), (33.5, 33.5), (167.0, 33.5), (154.0, 154.0)])

这是腾讯的一个二级子域名,在奇安信的情报分析系统查了下,没发现啥问题:
在这里插入图片描述

2.再看一下上面链接跳转的界面,也是腾讯QQ的子域名,应该没有啥问题:
在这里插入图片描述

3.到这里,没有发现二维码里的内容存在啥问题。但是当我无意间再从评论区打开二维码并保存之后,发现和之前的二维码竟然不一样了,于是又用zxing解析了一下,二维码内容变成了:
在这里插入图片描述
可以看到,这个与之前相比,p?k=之后的内容变了:

BarCode(raw='http://txz.qq.com/p?k=VVKsiATfWgGF5uYfELK*9pcVrbVz4090', parsed='http://txz.qq.com/p?k=VVKsiATfWgGF5uYfELK*9pcVrbVz4090', path='/D:/Python/pytorchLearn/QRCode/3.jpg', format='QR_CODE', type='URI', points=[(33.5, 167.0), (33.5, 33.5), (167.0, 33.5), (154.0, 154.0)])

4.事情开始变得有趣起来了,评论区的二维码每次打开竟然都不一样。而且当我用一个QQ号扫码当前的二维码之后,再用其他QQ号扫描二维码就会出现这种情况:
在这里插入图片描述
可以初步判定: 链接中p?k=后面的内容起到一个标识作用,当一个用户扫描之后,服务端可能就会重新更新,导致其他用户不能再扫一个同样的二维码了。这也比较好理解,服务器端获取了授权之后,需要将用户的cookie与对应的用户信息标识起来,对上号。

5.那我的QQ权限到底是怎么被别人获取的呢?
有过腾讯开放平台开发经验的同学到这里应该就大致猜到了。这是QQ空间开发接口文档,只需要在上面申请,开发者就能使用QQ空间的登录功能,将这个功能放到自己的项目上实现第三方验证。
我的猜测是:黑客自建了一个假的跳板,并申请了QQ空间登录接口,当用户点击授权登录之后,其实是把用户的cookie发给了黑客自建的跳板上,这样黑客就可以直接通过cookie登录QQ空间,发说说、评论、留言等。

6.为啥每次打开评论区的二维码图片,二维码包含的内容都不一样?
这个也困扰了我很久,但是当我自己也在评论区发个正常的图片,就发现了其中的差异:
有问题的评论区前端代码:
在这里插入图片描述

普通的评论区前端代码:
在这里插入图片描述
可以看到,有问题的评论区前端代码链接到了其他的地方,链接地址中存在两个页面,比较诡异。初步推断是:在评论区发送的并不是一个图片,而是一串包含外链的字符,外链连接的地址可能是hacker自建的一个跳板,打开QQ空间时,其实是自动从跳板读取图片并显示。这下也算是能解释通了!

7.到这里大致的流程是搞清楚了,于是我申请了一个小号测试了一下,果然过了2个小时,小号也在QQ空间发送了广告,还去别人评论区和留言板里发广告

应对方案

主要问题是cookie泄露导致的,正常cookie也是有时效的,但是黑客已经能够在时效做很多事了,而且现在很多东西写好脚本,就可以全部自动化操作了。
所以最好的方式就是更新cookie,但是暂时不清楚腾讯的QQ空间是怎么计算cookie的,所以这里可以直接改密码,当密码更改之后,所有的鉴权、验证肯定都会初始化,一招解决所有!

注: 在技术分析那里,涉及到的技术很多,可能说起来比较简单,但是做起来还是存在一定难度。可以肯定的是,腾讯也有一定的防御措施,但是这位hacker能够钻到空子,还是挺厉害的。

对于QQ第三方登录可以查看之前共享的一个demo:
JavaWeb实现QQ第三方登录

没有网络安全,就没有国家安全,请大家共同维护网络安全!!!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值