逻辑漏洞之短信轰炸

前言:

在挖掘漏洞的过程中,遇到的逻辑漏洞还是比较多的,其中就有不少短信轰炸漏洞。今天就以我挖掘到的一些短信轰炸漏洞为例子,主要是分享一些思路,还请大佬们多多包涵。由于涉及到厂商,对一些敏感信息进行了打码,大家看看思路即可。

漏洞介绍

短信轰炸漏洞,顾名思义就是可以无限制地发送短信,原理由于短信业务逻辑设计缺陷,例如:未设置短信发送阈值,未进行人机验证码识别,导致可以大量重复发送短信验证码。该漏洞会对其他用户造成骚扰或使厂商的运营商短信费用的增加,造成损失。

漏洞复现

漏洞常出现在登录和注册界面,以及一些需要发送验证码的地方

一般情况下,点击发送验证码后会有一定时间间隔,之后才能继续发送

一般像这种没有验证码的,一般是绕过js抓包重放即可,在BurpSuite设置代理,抓取发送短信的数据包到重放器中,重复点击发送,可以一直发送数据包,则说明短信轰炸漏洞存在

我们将POST数据包发送到轰炸模块,将参数点设置到Accept(不影响请求头),下面是结果:

手机短时间内收到了大量短信

上面只是最基础的绕过方式,服务器会采取一些防护手段来限制你发送次数,但一些防护不严格的话还是绕过的,下面我就分享一些绕过手法

绕过短信轰炸限制的思路

1.利用空格绕过短信&邮箱轰炸限制
比如一般参数是这样的:mobile1=XXXXXXemail=XXXXXX@XX.XXX 一般都会有5次机会,如果发送次数超过了5次,那么一时间或1天才能继续发送,但当在手机号的前面或者后面加上空格的时候就又可以发送5次,而且短信或者邮箱是收的到的,修改过的参数如:mobile1= XXXXXX ,在前面加上空格,每加一个空格就会有反复发送短信或邮件的机会。
2.利用调用接口绕过短信&邮箱轰炸限制
比如这样的参数:code=01&Mobile=XXXXXXX,前面的接口是调用短信发送内容的接口,比如code参数值为01是调用注册成功的短信提示,02是调用密码重置成功的短信提示,03是调用注册成功的短信提示等等,当修改这个接口值时,也就达到了短信轰炸或邮箱轰炸的目的。
3.修改Cookie值绕过短信&邮箱轰炸限制
有些可能不是直接验证手机号来判断次数,而是验证当前Cookie,利用当前Cookie来进行验证发送次数的话,很容易造成绕过,这里如果验证的不是登录状态的Cookie而是普通状态下的Cookie的话就可以通过修改Cookie达到绕过验证。
4.修改IP绕过短信&邮箱轰炸限制
有些同样是验证当前IP的,如果当前IP短时间内获取短信或邮件频繁或者达到一定次数的话就会出现限制,那么就可以利用修改IP或者代理IP来进行绕过限制。注:可以利用burpsuite的轰炸模块进行测试或者自己写一个python脚本测试
5.多次叠加参数绕过
叠加多个参数,发送多条短信验证码

1
mobile=130xxxxxxxxx&mobile=130xxxxxxxx&mobile=130xxxxxxxxmobile=130xxxxxxxx

短信轰炸防护

1.增加图形验证
2.单IP请求次数限制
3.限制号码发送次数
目前最好的防护方法是添加图形滑块和文字验证码。