前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于朋友圈《小心新型二维码钓鱼》揭秘

关于朋友圈《小心新型二维码钓鱼》揭秘

作者头像
Gcow安全团队
发布2020-03-06 11:59:10
1.7K0
发布2020-03-06 11:59:10
举报
文章被收录于专栏:Gcow安全团队Gcow安全团队

首先感谢钟馗之眼公开的攻击过程,感谢您的无私分享

老文章,当时没有粉丝,在发一遍

今天刷着手机,突然被朋友圈里一篇名为《小心新型二维码钓鱼》的文章吸引,看完演示视频心里久久不能平静,喜欢瞎折腾的我于是开始折腾起来,最终终于折腾明白了,于是写下这篇文章分享一下技术细节。

首先先贴上大表哥的文章链接:小心新型二维码钓鱼

首先我们先来看一下qq邮箱快速登陆的api

代码语言:javascript
复制
https://xui.ptlogin2.qq.com/cgi-bin/xlogin?target=self&appid=522005705&daid=4&s_url=https://mail.qq.com/cgi-bin/readtemplate?check=false%26t=loginpage_new_jump%26vt=passport%26vm=wpt%26ft=loginpage%26target=&style=25&low_login=1&proxy_url=https://mail.qq.com/proxy.html&need_qr=0&hide_border=1&border_radius=0&self_regurl=http://zc.qq.com/chs/index.html?type=1&app_id=11005?t=regist&pt_feedback_link=http://support.qq.com/discuss/350_1.shtml&css=https://res.mail.qq.com/zh_CN/htmledition/style/ptlogin_input_for_xmail440503.css

F12,启动,抓包看一下

既然是二维码登陆钓鱼,那么我们首先要关注的点首先肯定是如何生成二维码,我们先来找一下生成二维码的api,F12,启动!!!! 生成登陆二维码的api如下图

随着F12里面Network里抓的包越来越多,我被其中一个接口所吸引,这个接口是用来判断f12是否过期的接口,我们来看一下。

既然有接口能验证二维码是否过期,那么就说明生成的每一张二维码里的某一个参数和这个接口里的某一个参数一定存在着某种不可告人的py交易。顺着思路寻找,结局当然是被我当场捉奸,来看一下。

我发现在这两个api中,二维码生成接口的cookie里和二维码是否过期查询的接口里有同一个参数 login_sig,那么下面我只需要找到login_sig这个值是从哪过来的,就能将二维码和二维码是否过期接口一一对应到一起了。果然,我们在这个接口的cookie里找到了login_sig

代码语言:javascript
复制
https://xui.ptlogin2.qq.com/cgi-bin/xlogin?target=self&appid=522005705&daid=4&s_url=https://mail.qq.com/cgi-bin/readtemplate?check=false%26t=loginpage_new_jump%26vt=passport%26vm=wpt%26ft=loginpage%26target=&style=25&low_login=1&proxy_url=https://mail.qq.com/proxy.html&need_qr=0&hide_border=1&border_radius=0&self_regurl=http://zc.qq.com/chs/index.html?type=1&app_id=11005?t=regist&pt_feedback_link=http://support.qq.com/discuss/350_1.shtml&css=https://res.mail.qq.com/zh_CN/htmledition/style/ptlogin_input_for_xmail440503.css

现在梳理一下以上的思路,首先我们访问

代码语言:javascript
复制
https://xui.ptlogin2.qq.com/cgi-bin/xlogin?target=self&appid=522005705&daid=4&s_url=https://mail.qq.com/cgi-bin/readtemplate?check=false%26t=loginpage_new_jump%26vt=passport%26vm=wpt%26ft=loginpage%26target=&style=25&low_login=1&proxy_url=https://mail.qq.com/proxy.html&need_qr=0&hide_border=1&border_radius=0&self_regurl=http://zc.qq.com/chs/index.html?type=1&app_id=11005?t=regist&pt_feedback_link=http://support.qq.com/discuss/350_1.shtml&css=https://res.mail.qq.com/zh_CN/htmledition/style/ptlogin_input_for_xmail440503.css

从cooki里取到login_sig,然后就可以通过login_sig得到一个二维码,和一个查询二维码是否过期的接口。

但是在实际操作过程中,我发现查询二维码是否过期的接口除了login_sig还需要ptqrtoken与action,action参数在这里没什么可说的,就是一个时间戳,于是我就开始寻找ptqrtoken是如何生成的。

寻找思路就是

代码语言:javascript
复制
https://ssl.ptlogin2.qq.com/ptqrlogin

这个api的请求是从哪个地方发起的,最终我在这个js里找到了他

代码语言:javascript
复制
https://cdn-go.cn/qq-web/any.ptlogin2.qq.com/c7d607f7//ptlogin/ver/19112817/js/c_login_2.js

由于c_login_2.js后带参数,所以想要自己亲自调试的小伙伴可以自行抓包寻找这个js的路径

首先我们来找ptqrtoken

好的,我们可以看到ptqrtoken是将cookie中的qrsig参数通过hash33方式加密得到的,我们再来找一下hash33方法的定义

代码语言:javascript
复制
hash33:function(t){for(var e=0,i=0,n=t.length;i<n;++i)e+=(e<<5)+t.charCodeAt(i);return 2147483647&e}}}()

这样子我们就可以得到ptqrtoken了,同时也得到了一对url,一个是生成二维码的url,一个是对应查询那个二维码是否过期的url

说了这么多,小伙伴们可能还是一头雾水,好奇我上面啰嗦这么多是什么意思,下面就是揭晓真相的时刻

我给大家写一个不停访问二维码查询是否过期接口的小例子大家就明白了,由于本人还是习惯用易语言,希望各位大佬看我用易语言写demo做演示不要嘲笑我,看下图

在扫码之前,访问那个接口的时候,接口会返回二维码未失效,在扫码的过程中,那个接口会返回二维码认证中,在扫码过后,接口直接返回了邮件免密登陆地址,那么二维码钓鱼的原理就因此显而易见了

那么我们来访问下面的url来测试一下

由于本人安全意识较强设置了独立密码,没有独立密码的人将通过那个url直接进入邮箱了

惊不惊喜意不意外

以上就是今天给大家分享的内容,上面那些构造url的方法会在写利用脚本里面用到,为了防止某些小黑非法使用,利用脚本就不公开了,各位大佬自己去写吧。

文章有看不懂的地方欢迎大家来跟我交流,有错误的地方也希望各位大佬指正

原创不易,希望大佬们多多关注,您的关注是我更新的动力,关注我,日常分享小技巧

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Gcow安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档