二维码扫码验证漏洞场景
随着应用APP化的趋势发展,类似扫码登录的场景越来越多,在此功能提供便利的同时,如若配置不正确则会出现安全隐患,本文将总结二维码使用场景下可能会出现的安全隐患。
什么是二维码?
简单来说,二维码就是网址、文本、联系方式等。扫描二维码这个动作,可以理解成用户点击的动作,或者传递参数的动作。
漏洞利用
当遇到一个二维码时候,可以截图到草料二维码进行解码,观察链接的构造。
打开草料二维码解码器,将需要解码的二维码上传后,即可得到真实的链接或者文本:
通过观察解密后的链接,大致判断存在什么样的漏洞:
漏洞场景一
https://sanshiok.com/order?id=1
通过观察上述链接可能存在问题有:
- 越权:id参数可以修改为其他参数后,进行遍历后批量查看他人信息
- sql注入:尝试去闭合或者注释sql语句,主要考虑布尔型的注入
漏洞场景二
https://sanshiok.com/ping?url=xxx.com
- url重定向:大概率url是跳转后会重新向的链接
- ssrf:通过url可能会访问到内部的资源。若存在waf,我们可以考虑使用302重定向的方法去访问资源。即:传入的url,参数是非内部资源,将
http://127.0.0.1
转换成短链接的形式进行绕过
漏洞场景三-CSRF
https://sanshiok.com/bind?code=xxxxx
- CSRF:存在一个场景,我们我们扫码过后,会出现一个绑定的数据包,
code
参数就是我们要绑定的微信号,但是我们通过CSRF攻击,让他人点击即可用让他人的账号绑定攻击者的微信号,造成账号接管的效果。
攻击的流程图如下:
要实现让B帐号请求拦截的数据包,是需要一次交互的,配合存储XSS组合拳可到高危。通过诱导用户点击,需要一次交互的,危害一般为中危。
漏洞场景四-OAuth认证缺陷
具体的场景就是扫码登录,在第一次扫码时,是需要关注公众号,但在第二次及后续的登录时,直接扫码登录不需要确认就登录上了帐号。在此种场景下缺失二次校验,存在安全隐患。
此类型的漏洞针对的用户主要是:
- 已经扫码关注公众号的用户
- 正在使用该系统的用户
具体漏洞利用场景:
将中间的二维码截出来,用ps或者二维码在线美化平台:
通过钓鱼🎣等方式,转发给受害者扫描,即可成功登录帐号:
修复方法
使用完整的流程进行 OAuth 身份认证,在敏感操作处添加二级校验。
免责声明
免责声明:本博客的内容仅供合法、正当、健康的用途,切勿将其用于违反法律法规的行为。如因此导致任何法律责任或纠纷,本博客概不负责。谢谢您的理解与配合!