短信验证码的防攻击

案例

看到下面一个请求包,发个验证码附带了这么多的参数,那么肯定是有些问题滴!!
在这里插入图片描述

一般比较典型的短信轰炸漏洞,要么是未作任何限制,要么是添加 +、空格等可以绕过

最近在测试的时候,发现了一点新东西,利用请求中的其他参数也可以造成短信轰炸漏洞,比如说:

场景
对应图中的参数为type,不同的业务场景对应着不同的值,比如登陆、注册、修改密码、修改手机号等等,那么就可以暴力破解出 type 的值,不同场景发送验证码互不干扰

语言
对应参数为language,其可发送不同语言版本的短信,如 zh en fr es nl pt de fi ja ru it el tr 等

客户端
对应参数为account_sdk_source,其可以为 app web ios android 等

通过遍历每个参数,即可达到短信爆破同样的效果

【干货详解】短信轰炸漏洞绕过的多种方法技巧
渗透测试之修改密码+短信轰炸
验证码防爆破问题的引发的限流技术思考
防止恶意攻击短信验证码接口方法
记录一个短信爆破洞

短信验证码的防攻击策略

使用短信验证码过程中,有时会出现短信被恶意攻击的事件,这是由于短信功能设计的一点缺陷造成的,严重的话会引起不必要的损失。下面就和中昱维信一起了解下短信验证码防攻击的策略。

几种防攻击策略使用过程中的思考

短信验证码集中防攻击策略均是有利有弊,起到不同的防护作用,但在实际使用过程中,最好考虑自身的情况,采取组合使用的策略。

1、设置短信发送时间间隔

把同一个号码重复发送的时间间隔设置为60-120秒。该手段可以读防止短信接口恶意攻击起到一定防护作用,而且对企业没有什么影响。但是不能防止黑客换手机进行攻击,因此防护等级较低。

2、手机号获取短信验证码次数限制

限制每个手机号在时间段内获取短信验证码的次数限制,采用这种产品设计的策略,有几点需要思考。
谨慎定义数值上限。更具业务真实情况设置一个上限值,以免用户无法接受短线验证码而对业务造成影响。

谨慎定义锁定时间段。可以是6小时,可以是12小时、24小时。需要更具真实情况而自定义。

考虑用户手机无法获取到短信验证码之后应该如何处理。如果有用户不小心触发上限值,但是他真的要办理业务,那么这是可以让用户达客服电话。同时也可以让用户等待到渡过锁定期后自行解锁等等。

3、IP限制

设置单个IP地址某时间内的最大访问量。该手段能很好阻止单一IP的攻击,但是对于黑客变更IP地址攻击是没有效果的。

如果IP的限制经常会造成误伤。假如在肯德基等统一无线网络的场所发送手机验证码,这意味很多用户共用一个WIFI,这个IP地址会迅速达到IP上限,所以会造成连接该无线网的用户都无法正常的收到验证码。

4、增加图形验证码

在发送短信验证码之前,现用图形验证码进行校验。这种房供给的策略是当下十分普遍流行的一种方法,但在使用时会有用户体验的问题出现,不能一概而论,并且以下几个点值得仔细斟酌:

能不能每次输入短信验证码前都验证图形验证码?我的意见时最好不要,因为这会极大影响用户体验,造成用户验证失败的概率加大。

可以给一个相对安全范围。不妨结合IP限制、手机号限制来考虑,比如同一个手机号当天第3次获取短信验证码的时候,出现图形验证码二次验证;比如同一个IP地址当天获取验证码次数超过100次后,出现图形验证码二次验证。

图形验证码当下有这些热门类型:有文字(字母数字)验证码、选字验证码、滑动验证码等,根据具体的业务场景来选取。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值