短信轰炸漏洞一般分为两种:
1.对一个手机号码轰炸n次
2.对单个手机号码做了接收验证次数,但是可以对不同手机号发送短信无次数限制
在漏洞挖掘中遇到个有意思的案例,写篇文章分享出来。
在接收短信处都有可能存在短信轰炸漏洞。输入手机号然后接收短信:
首先我会查看响应接收和cookie中是否会返回正确的验证码,好吧~我在做梦,这种设计缺陷已经很少见了。
接着看加密完整的数据包post data的值:
当我输入手机号码接收短信,数据包中对phone进行了加密,一般在漏洞挖掘中遇到这种情况我一般扭头就是换地方测试漏洞了,我觉得这里存在问题的可能性很小,但是这次我想尝试下,下面是我的尝试之旅:
这里对手机号进行加密,可能是前端加密也可能是后端加密,我尝试接收多次验证码,看数据包中的phone是否会发生随机性的变化:
我发现我的手机号phone始终是BYiJiNlLxDYiDJOUEoUQdQ%3D%3D,不管我接收多少次验证码,他都是唯一的加密值,并没有产生随机性变化。
现在我尝试查看源码,看看能不能寻找到phone的加密方式:
查看源码发现他这里对phone进行了前端加密,首先是通过encrypt加密然后对加密的内容进行url编码。前面的%3D的url解码就是=
开始定位到encrypt函数:
控制台上输出encrypt
单机点击进去:
得到加密手机号码的方法,以及解密手机号码的方法。
现在我们知道了我们手机号的加密方式,下一步就是批量对每个手机号进行轰炸:
如何操作呢?
我们批量手机号码的最后两位:
我少生成点,生成20个:
代码如下:
var k=10;
while(k<30){
var m=encrypt("138330781"+k);
k++;
console.log(m);
}
把这些生成的加密phone保存到文档中:
爆破之: