会飞的鱼

随心博客
乐享资源
首页 » 技术杂谈 » 彩虹最新扫码登录PHP文件分析

彩虹最新扫码登录PHP文件分析

今天抓包测试过程中,让我想起了彩虹大佬已经写过此类程序,于是乎从彩虹自助下单程序源码中单独提取了出来。

该功能文件主要是QQ二维码扫码登录,可以看到,彩虹在很多方面都应用了此功能;MZ、DS,包括他的授权验证程序下载,广泛应用。

因为QQ的唯一性,所以在授权、绑定有其独特的优势;但是,此功能虽然好用,但是我想说的是,此功能也有很大的风险,登录获取之后的cookie,一单泄露被有心人利用,QQ邮箱、QQ空间等被QQ关联的网页产品,几乎可以做到随意进出,没错,就是这么恐怖。


所以友情提示一句:经常更换QQ密码是一个很好的习惯。


好了,回归主题说正事,讲下这个QQ扫码的登录验证流程;中间我写了一个Demo用于演示,源码放在最后,感兴趣的可以自行下载来玩玩。

文件中的qrlogin.php是核心文件,demo.php是调用文件,放在php空间可以直接运行。


第一步,当然是获取需要扫码的二维码图片,获取二维码的接口很多,其中已经内置一个(QQ空间接口);获取二维码的同时,自动保存一个接口生成的cookie值qrsig,该值由接口自动生成,相当于二维码的唯一ID值,用于最后判断是否已经扫描登录。

彩虹QQ扫码PHP文件分析


彩虹QQ扫码PHP文件分析

获取的二维码是以base文本形式返回,所以显示图片的时候不能用常规的方式,如上图。


第二步,就是用你的QQ直接扫码登录了,登录之后点击获取登录结果。


彩虹QQ扫码PHP文件分析


彩虹QQ扫码PHP文件分析


简单讲:先获取二维码图片和qrsig值,用QQ扫描获取的二维码;再用qrsig值和哈希值ptqrtoken获取登录结果,成功之后返回Cookie。


二维码获取API: https://ssl.ptlogin2.qq.com/ptqrshow?appid=11000101&e=2&l=M&s=3&d=72&v=4&t=0.5035409926026002&pt_3rd_aid=0

登录结果获取API:http://ptlogin.qq.com/ptqrlogin?u1=http%3A%2F%2Fqzs.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&ptqrtoken={ptqrtoken哈希值}&ptredirect=0&h=1&t=1&g=1&from_ui=1&ptlang=2052&action=0-0-{当前时间戳}0000&js_ver=10194&js_type=1&login_sig={qrsig值}&pt_uistyle=40&aid=549000912&daid=5&


就两步,是不是感觉很简单?感觉简单就你就错了。

刚开始在抓包实际操作中,一直好奇这个QQ扫码登录之后,怎样判断该QQ是否已经成功登录,找来找去才留意到qrsig和ptqrtoken这两个参数,前者二维码页面生成,后者是一个哈希值,通过qrsig计算所得,最后根据qrsig和ptqrtoken两个参数才能最终获取登录结果。

而其算法隐藏比较深;不过还是被彩虹给提取出来了,实话讲,挺佩服他的。


API地址:https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=11000101&target=self&style=40&s_url=https://pay.qq.com

API很多,这只是其中一个,打开审查元素即可看到。

彩虹QQ扫码PHP文件分析


彩虹QQ扫码PHP文件分析



彩虹QQ扫码PHP文件分析



好吧,就说到这里了,就讲到这里,怎么用就是大家的事情了,有问题一起学习交流,我也是小白,向大佬致敬!

文件下载地址

链接: https://pan.baidu.com/s/1PCgf-D43bBCYRd6-03SIUg 密码: h8hm

文章如无特别注明均为原创! 作者: 小珏, 转载或复制请以 超链接形式 并注明出处 小珏博客
原文地址《 彩虹最新扫码登录PHP文件分析》发布于2018-3-24

分享到:
打赏

评论

游客

切换注册

登录

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册