验证码漏洞原理及实战演示
前言
验证码是我们生活中经常遇到的东西我们注册账号,需要手机验证码,提交留言等需要图形验证码,那么我们就这两类生活中最常见的验证码进行讨论,看看有什么方法可以绕过验证码验证。
一、图形验证码
图形验证码用于多处地方,用户登录,短信发送,留言功能。主要是可以防止他人恶意攻击。
验证码易于辨认
这里有一个例子,图形验证码过于容易辨认可以用Burp Suite导入插件进行自动识别验证码,一般识别率能达到百分之90,该验证码是用于手机短信的发送,用其可以实现短信验证码轰炸,同时也可以用于只需要图形验证码就能登录的用户密码爆破。
这里放一个插件下载步骤文章链接有需要的可以跟着博主下载操作
https://blog.csdn.net/YouthBelief/article/details/124017167
验证码可重复利用
验证码使用后为失效,像上图所示如果将数据包拦截并重放,如果还能通过,那就不需要Burp Suite导入插件识别验证码了,直接可以进行爆破或者短信轰炸。
验证码空值绕过
直接删除验证码参数可绕过。
二、短信验证码
短信验证码回显
使用Burp Suite 中Proxy中的intercept功能,将intercept设置为关闭抓包时使用Response to this request功能拦截返回数据包,数据包中存在验证码数据,可以直接用验证码回显输入正确验证码,实现登录或注册等功能的通过。
短信验证码过于简单且错误后不失效
当遇见这种情况,如果网站没有设置验证次数,并且短信验证码是纯数字的,且位数不高,可以使用Burp Suite进行验证码爆破。
短信验证码状态码回显
输入验证码并登录,使用Burp Suite 中Proxy中的intercept功能,将intercept设置为关闭抓包时使用Response to this request功能拦截返回数据包,看到一个参数为-1或者0便可以尝试是不是状态码,修改为1,尝试绕过。
跳过验证页面,直达目标页面
使用功能时会发送几个包,使用Burp Suite拦截并丢包,直接跳过验证页面,进入下一页面。
三、个人短信验证码挖掘经历
首先我点击登录功能,使用Burp Suite 中Proxy中的intercept功能,将intercept设置为关闭抓包时使用Response to this request功能拦截返回数据包,得到以下数据
这里有一个参数d为-1,十分像状态码,将其修改为1
最后绕过验证码,成功注册用户
四、验证码漏洞预防
1.限制获取验证码时间间隔
2.限制单个IP地址发送量
3.限制单个手机号码发送量
总结
验证码漏洞有一定危害,恶意攻击者可以用这个漏洞登录他人账号,获得用户权限,再用逻辑越权或者sql注入等手段获得该网站高权限进行恶意攻击,也可以将他人账户的各种资产搞得一团糟。希望大家学习后不用用于不法用途,共同维护网络安全。