微信扫描二维码登录网站,相信很多网站登录中都有这个功能。但是这个功能使用不当,将会出现劫持漏洞。话不多说,直接分享三个实战挖掘的案例,三个的实现方式都不一样(已脱敏).
A网站登录处存在二维码劫持漏洞正常走其流程,发现登录扫一个二维码即可:
微信扫描后发现,只要关注了 A网站 的公众号,无需点击确认,扫描后即可登录:
‘打开浏览器f12,发现生成二维码的链接如下:
但是直接访问,发现报错:
估计是判断了Refere头,我们用python 的requests去请求试试:
发现轮询判断二维码是否扫描,是否登录的接口如下:
其中:
未登录 code为 1
登录 code 为 0
二维码过期 code 为 2
当登录成功,code返回0,将会set-cookie,返回一个绑定登录账号的cookie:
可成功获取到msg。
制定攻击流程:
(1)请求https://a.com/account/login_weixin.html获取到 msg参数
(2)轮询请求 https://a.com/account/checkLogin.html?1586329068966&ticket=msg参数其中 ticket参数为 第一步获取到的msg参数
(3)将二维码投放出去,钓鱼等待受害者扫描
(4)受害者扫描二维码,轮询返回登录成功
(5)获取此时的cookie。用这个cookie去登录受害者账号
Exp:
qrcode.py
此python文件用来获取二维码以及轮询
Index.php:
此页面用于投放二维码,供受害者扫描。
攻击流程:
(1)开启qrcode.py:
(2)投放恶意页面: