1、介绍
验证码爆破,攻击者可以持续请求验证,从而获取正确验证码。
2、防护
(1)限制验证码有效时间
如果设置相对较长的验证码有效时间,那么攻击者就可以用较低的频率爆破。反之,验证码有效时间相对较短,则对爆破的频率提出高要求,这既考验攻击者的硬件和软件,也考验网络传输和服务端压力。提高爆破难度
(2)较长的验证码长度
6位的验证码相比4位的验证码更难以爆破
(3)提交验证码的次数
如果服务端对于获取过验证码的手机号或邮箱,进行提交验证码次数记录,当达到一定次数,就设置验证码过期,需要重新请求验证码。这是主要的验证码爆破防护手段
(4)验证码覆盖
如果对同一手机号或邮箱,前面请求的验证码仍然有效,那么相当于一个手机号或邮箱可以匹配多个验证码的任意一个即可,大大降低爆破难度
(5)获取验证码频率
(6)验证码未刷新
某些场景中,攻击者短时间重复获取验证码,服务端前后发送一致的验证码。
如果重复请求时刷新上一验证码的测试次数和时间,那么可以低频爆破,然后间隔刷新。
3、测试&绕过
(1)验证码覆盖测试
(2)快速测试
快速爆破22次,如果验证码仍然有效,粗略可以判定验证码次数未做限制
(3)有效时间测试
每隔30秒请求一次,观察响应是否变化
测试30分钟后,正确验证码是否有效。
如果有效,那么可以倍增继续测试。如果无效,则二分法继续测试
(4)大量爆破测试
标签:web,爆破,有效,验证码,漏洞,测试,攻击者,次数 From: https://www.cnblogs.com/wd404/p/17533309.html