如果你在电脑上用过微信,一定对下面的画面不陌生。实际上不仅是微信,Line、WhatsApp都使用这种简单快速的验证系统。
SQRL登录系统
这种系统叫做SQRL(Secure Quick Response Login,安全快速响应登录),这是一种基于二维码的验证系统,特点就是可以让用户快速地登陆网站,不需要输入用户名密码。
所谓二维码,就是一维条码的基础上扩展出另一维具有可读性的条码,它能够包含大量的信息,包括共享密钥或者会话cookie。
用户扫描之后就不用再输入用户名密码了。由于密码可以通过keylogger、中间人攻击 、或者暴力破解,所以相比之下,二维码就安全得多。
但是看似安全的技术,黑客总能想到对付它的方法。
QRLJacking:劫持基于二维码的登陆系统
埃及信息安全公司Seekurity Inc的研究员Mohamed Abdelbasset Elnouby想出了对二维码登录进行劫持的方法,并且发布了PoC演示。
研究员把攻击方法命名为QRLJacking,这种方法简单,但影响却很恶劣,能够影响到所有那些使用了二维码登录的网站。攻击者需要做的是让受害者扫描一个二维码。
攻击流程
攻击者建立客户端二维码会话,然后把登录二维码复制到钓鱼网站。
攻击者将钓鱼页面发给受害者。
如果受害者相信了,就会用手机扫描二维码
手机里的应用就会把secret token发送给目标服务完成认证过程。
最后攻击者作为发起客户端客户端二维码会话的人,获得了受害者账号的控制。
之后,服务就会开始在攻击者的浏览器会话中交换受害者的数据。
因此,要进行QRLJacking攻击,黑客只需:
进行二维码刷新的脚本
制作好的钓鱼网站页面
视频演示
攻击者在进行攻击时要使用特定的脚本,因为这些登录界面的二维码定期会刷新,旧的就会失效,所以脚本的作用就是要实时地进行刷新。
QRLJacking攻击成功后,攻击者就可以完全控制账号,甚至能够获取到受害者的地理位置、设备IMEI号、SIM卡数据和其他敏感信息,这些信息都是客户端app在登录的时候会展现的。