什么是爆破短信验证码:
目前短信验证码大部分都是纯数字且有位数限制,所以在一个数值范围内存在一个正确的短信验证码,这时通过穷举验证码,利用工具来更改每次请求业务服务接口所需要的验证码值,就可通过业务校验。
攻击过程:
假设短信验证码是四位数:
1、穷举0000到9999,一共1万个值;
2、获取请求需要短信验证码校验的业务服务接口;
3、利用工具更改每次请求该接口的短信验证码;
4、后端对应业务每次收到请求后,对短信验证码进行校验,返回对应结果信息,通过结果信息可知道穷举是否成功。
防护建议:
限制验证码的有效时间,并且限制对应手机号输入验证码的错误次数。
注意:在这不建议通过缩短验证码的有效时间或加长验证码的位数来进行防护。
例如:不限制对应手机号输入验证码的错误次数,6位的纯数字短信验证码,100万个值,5分钟内有效期。一台普通配置的电脑可以在5分钟内请求1-2万的值,100台电脑就可以在5分钟内穷举请求成功,而且,随着科技的进步,电脑性能越高,每分每秒可请求的次数也会跟着上升,所以不要把赌注押在日益更新的计算机性能上!