其实这个相信很多人都知道的,这里就再复现一下吧
其实这个主要是我们在电脑上登录了qq后,当我们需要用到qq去登录其他的时候我们就会来到一个快速登录的界面
比如我们在登录网页端的qq的时候,在电脑上登录了qq之后我们一点击登录就会出现一个单点登录,这种快捷方式就很容易被别人恶意利用
我们可以来分析一下这个登录的主要流程
我们以qq群的登录为例子
我们打开qq群的登录,发现打开首页,点击了登录之后就会去加载一段链接:
我们可以单独打开看看,其实这个就是加载了单点登录的一个链接,其中的s_url应该是登录成功之后要跳转的链接
其实我们可以这样想,我们只是打开了一个网址而已,为什么他会获取到我们已经在电脑上登录的qq了呢?这个时候我们应该可以想到,其实是有可能在加载这个链接的时候他会先获取在电脑上登录的qq信息,我们刷新一下这个链接重新抓包看看
我们对每个包进行拦截分析,拦截到这个包,看到了他的返回值是这样的:
可以看到这个的返回值就是我们已经登录了的qq的信息,为什么这么说呢,为了验证,我现在能查询到的只有一个qq的信息,这个qq的信息是我在电脑上登录信息,然后我再登录了一个账号之后再次发包之后是第二张图片的
我们来分析一下这个包,我们发现包会加载一个pt_local_tk参数,这个参数是怎么来的呢,其实如果你玩过用软件写post登录的话应该就会对这个很熟悉了(楼主以前就是经常用易语言写网站的post登录),这个值有可能会存在网页中,上次链接返回的cookie中,或者是本地js生成
其实我们在刷新的时候拦截到抓包其实就会知道的,我们用网页调试器去调试一个这个链接:
发现这个会在返回的cookie中返回了一个: pt_local_token 值,其实我们发现 pt_local_token这个值是和 pt_local_tk 这个值是一样的
当然了,每次刷新了链接这个值也会发生变化,所以这个值不是固定的
接下来我们点击登录
点击登录(又换了一个小号)
点击了之后我们发现这个加载了一个链接,我们发现这个链接的加载
发现这个链接的返回里面返回了一个 clientkey 值
我们继续跟进,我们发现在访问了这个链接之后发现这个链接的cookie中有有我们上一步返回的cookie—clientkey值做cookie做请求头,并且给我们返回了一个 skey 值和获取到一段地址
获取到的地址:
我们继续跟进到加载了地址的的那个链接
这个链接加载了之后会302跳转到:https://qun.qq.com/,也就是我们一开始的s_url参数的值
同时我们也发现了这个链接返回的cookie中会返回一个 p_skey 值
然后整个登录过程完成了
而至于我们为什么要这么做呢,接下来我给大家演示一下就明白了
这个是我们获取群里面成员的的接口链接
我们也可以网页调试器上模拟这个接口,如下
这个时候我们就发现了,我们只需要一个就接口访问链接,加上他认证的cookis和协议头(Referer)就可以了
这个时候我们发现我们只需要cookies中的 p_skey 、 uin 、 skey 这三个值就可以调用接口了
其实这个对于那些经常写post的登录的那些人来说这个是习以为常的,那这个时候我们能怎么利用呢,我们可以这样想,他在打开链接的时候会获取在电脑上登录的qq,然后当点击的时候就会登录,点击登录就是点击了访问一个链接,这个时候我们弄成获取到了在电脑上登录的qq直接就访问点击登录的那个链接,也就相当于自动点击了。
其实上面的过程可以写一个程序进行操作,不过我们先来理理思路如何获取到 p_skey 、 uin 、skey 这三个的值
链接中参数 r=0.40394900412518164 的值这个不用理会,因为这个是现行时间戳,就像我们去访问一个图形验证码的时候后面跟着的现行时间戳一样,就算删除了之后还是一样可以的,所以可以不用理会,当然也可以加上,看个人喜欢
(1)、获取pt_local_tk值:
访问:
因为我们知道 pt_local_token 的值就是 pt_local_tk 的值
(2)、获取电脑上登录的qq信息
访问:
我们知道了 pt_local_tk 是从第一步获取到
但是这步的获取需要协议头和cookie了如下,接下来的操作一样需要,可以自己进行操作添加,接下去就不截图网页调试器上的调试了
在返回包中可以获取到qq的登录信息
(3)、获取clientkey值做cookie
访问的链接:
我们发现这个 clientuin 的值其实就是我们的qq账号,我们可以从第二步中获取并使用正则匹配出来
在返回包的cookies中可以得到 clientkey 值
(4)、获取skey值
访问的链接:
需要cookies和协议头:
Cookie:pt_local_token(通过第一步得到)、clientkey(通过第三步获取得到)
在返回包的cookies中可以得到skey值
(5)、获取p_skey值
访问我们从第四步得到的地址:
在返回包的cookies中可以得到p_skey值
这样我们就获取到了 skey 值、 p_skey 值,而这个 uin 值就是我们的qq号码在前面加上o就可以了
而接下来我们要做的就是写一个脚本模拟这个登录的过程,就是写一个exe程序,当别人打开我们这个程序的时候我们就会得到他电脑已经登录的qq的这三个值,然后发送给我们的后台,有了这三个值之后你就可以调用qq的其他接口进行其他的操作都可以,比如发qq空间,删除日志。。。。。。等都可以完成。
以下为代码(本来是想用易语言写的,不过易语言写一个Hello Word的弹框都会报毒,想想还是算了,于是就用py写了)
下载链接:
https://link.zhihu.com/?target=https%3A//www.lanzous.com/i1fqije
功能呢的话可以自己再加,加个获取正式ip或者其他的功能也行,就是不要涉及敏感的就可以过360了
采用了加密的形式传输,以下为截图的一部分
有一个特点就是编译出来的程序能过360
完美过360
那接下来的事情就是各位社工帝的事情了
这个是我搭建的后台点击了之后获取到的