遇到“短信炸弹”很烦怎么办?运营商终于给出了解决方法

垃圾短信已经成为了我们生活中日常的一部分,因为个人信息的泄露,手机用户一天可能会收到各种各样的垃圾短信和验证码,这就是让人很崩溃的“短信炸弹”,有的人没有办法只能关机来躲避短信轰炸。

image.png

有的手机用户可能是欠了别人的钱没有还上,或者是网购给了卖家差评,再或者就是熟人报复手段等,报复的人用特定的软件,将用户的手机号码输入,然后设置好时间,到点了就会往那个手机上疯狂发送垃圾短信。那么受害者有哪些好的解决办法呢?最近中国移动就给出了解释。

短信炸弹就是一些不法分子通过某些特定的第三方软件,疯狂向一个或者多个手机号,在规定时间内疯狂的向针对的手机号发送垃圾短信,影响手机用户的体验,属于恶意骚扰。

如果你遇到了这种情况,可以立刻联系手机运营商,客服经过授权后可以为你开通应急处理“短信炸弹”的服务,这项服务是免费的,开启后你的手机就不会受到垃圾短信了。

值得大家注意的是,这个应急服务是对该手机所有的短信进行屏蔽,正常的个人信息也会被拦截,默认开启时间短则1天,长则1年,避过风头后就要记得开启,不然会影响很多事情。大家遭遇过短信炸弹吗


0x00 短信炸弹

最近的测试过程中,遇到了很多厂商的验证码业务都存在短信炸弹的情况,可以出现在注册、登录、重置密码的某个步骤中,输入手机号之后抓取获取验证码的数据包进行重放,从而达到在短时间内对同一个手机号进行短信轰炸的目的。还有一种情况是对于服务端对某一个手机进行攻击会做限制,但是可以对不同号码进行多次的攻击(即针对某一个号码段的号码进行“群发”短信)。

0x01 防御

从自己遇到的一些防御手段来介绍吧。。。。

1、增加验证码。

在输入手机号之后同时要加上验证码,两个参数同时发送到服务端,服务端首先对验证码进行识别,当验证码判断正确之后再对该手机发送验证码。

这一种防御方式依旧存在漏洞。攻击者可以使用验证码识别插件编写脚本进行识别,同时提交到服务器进行短信轰炸。这一类只是提高了攻击门槛,但是不能从根本上解决问题。

2、根据session进行判断。

用token作为唯一性识别验证,后台写一个算法将token注入到前端,然后前端可以通过相应的规则获取到token,用户在提交手机号的同时,请求头同时会带上该token。其中就有包含用户当前唯一身份标识的信息。服务器每次发送验证码的时候就将该用户的发送次数加1,当达到5次或者某个上限时就不在发送短信。这一种情况在实际情况中挺常见的,但是设计也要做到仔细不然就会有很大的问题。

首先是判断逻辑。在几次测试过程中,我也遇到过类似的情况。直接重放数据包,只能发送1个短信就会提示已发送过了。但是如果删除cookie就可以无限次数重放了。这是因为后台在判断cookie时没有考虑完全,忽略了当cookie 为空的情况。正确的情况应该是首先判断cookie 参数是否存在,不存在就返回到前一个界面或者提示会话已过期。当cookie参数存在的时候再判断该用户已发送过多少次,如果超出限制就提示错误,不再发送。

3、对手机号做出限制。

对单个手机号进行日接收次数的限制,可以防止单个手机号无限制刷短信,同时设置时间间隔可以有效。短信接收次数可以根据平台特点进行限制,一般日接受验证码次数为10次左右;同一号码发送时间间隔通常为60秒或者更长,前后台应保持一致,避免出现只前端做倒计时限制,后台未做限制这种低级错误。

4、对IP做出限制。

对单IP最大发送量进行限制,可以一定程度防止单一IP下对多个手机号进行炸弹攻击的问题。最大发送量限制是防止恶意攻击者同IP下不同手机号进行刷短信验证码行为。根据平台实际情况设计一个短信最大发送量的上限,超过上限则不发送短信。但是这种情况攻击者可以使用代理工具绕过限制。

Last modification:January 25, 2021
如果觉得我的文章对你有用,请随意赞赏