白帽子您好,横向轰炸不收,故此忽略,感谢提交。若有更多疑问可咨询平台客服小姐姐(QQ:3459476393),很是感谢对漏洞盒子与互联网安全的支持,对此给您带来的不便咱们深感抱歉。前端
收到上面一条信息,web
才知道短信轰炸也分横向轰炸和纵向轰炸。chrome
从字面上猜猜,大概以下意思。
api
就我遇到的,目前可被横向轰炸的短信接口仍是不少的,尤为是在web页面中,不对发短信接口作一些必要的限制,浏览器
致使存在被无限调用和滥用的状况。缓存
因为手机号格式还算比较固定,以1打头,中文11位等,可用代码、存储过程瞬时批量生成100w条手机号安全
现有的工具好比Jmeter,将生成的手机号经过csv配置文件导入,而后经过http请求发送。还能够开始必定的线程数,分分钟给100w个手机号发短信。网络
假设一条短信1分钱,那分分钟1w元就被人发短信发掉了,还都是垃圾短信,影响收到的人群。算是也不小啊~~【好吧只能说我穷,1w元我以为不少啊,我能买好多好多吃的,穿的,玩的~~~】session
纵向轰炸,我也遇到过,如今一些新的api直接调运营商接口,由运营商返回,这种反而较少;却是web页面中的,尤为老的web系统,代码页面掺杂在一块儿,经过一些.ation,validateRegisterOTP.do方法发SMS的比较多。工具
无心看到网上有不少短信轰炸机的案例,某人为了整蛊别人,在页面上填写别人的手机号,致使别人不停地收到短信,并且收短信的短信发送号码不固定,想拉黑名单都不能够。关机又怕错太重要电话。何须啊~~
看了短信轰炸机的原理,有的人调用纵向轰炸接口,有的是横向接口,集成了网络上许多的发短信的接口~~
做为测试,只能说,发短信接口只有目的的,为了验证你的手机号码正确且真实存在,不能只知足这样的功能,还要防机器人,加上一些限制,不能将本身的发短信方法变成别别人利用的工具。
测试不能只测功能,要有想法。
短信验证码:
发送SMS:既要保证给指定手机号发送短信;又要保证不能被任意调用,随便发送短信;默认须要添加的限制: 同一手机号码一天5次,手机号码位数限制,手机号码1打头,(132,138,139,158,159,171,177,181,189,199)
横向和纵向不能随意调用
验证SMS:短信验证码不能被伪基站截取;短信验证码验证次数作限制,不能无限次验证。作项目伪基站的事你保证不了,短信验证的次数,好比下面的,短信运营商能够作,是否本身也须要作?
并且早期的项目,运营商是没有这个限制的。因此早期的项目,SMS被滥用的状况比较多。
总结一下短信验证码常见的漏洞:
1. 发送短信验证码的前提
1. 在页面上添加图文验证码,只有正确经过图文验证码后,方可给输入的手机号发送短信
这边就要注意一个问题,图文验证码通常缓存在session中,必然只能用一次,经过以后要清除,不然同一个图文验证码既能够给A用,又能够给后面BCD等等人群使用
若是不设置图文验证码,好比如今不少的网站,会员注册和登陆,都是直接经过手机号+短信验证码来操做,可是同一设备不会容许你发送不少次短信,好比第五次发送短信验证码的时候,弹出图文验证码框框
2. 发送短信验证码
短信验证码发出去了,不容许进行重复点击发送,然而不少系统是在前端js实现的;在.action/validateRegisterOTP.do方法未作限制,绕过前端,即可无限发送短信了
若是发送短信验证码前提有图文验证码这样的限制,重发短信验证码,是须要再次填写正确的图文验证码的
若是没有图文验证码的前提,发送短信验证码的方法,须要添加判断,是否一分钟之内只能发送一条短信【这块短信运营商也能够操做,以前要说明】
3. 短信验证码的验证
1. 短信验证码发出去了,可是操做的时候,未与业务功能关联,解释输入错误的验证码也能正常操做;这种验证码形同虚设。
2. 短信验证码发出去了,chrome 浏览器发开F12, 能够看到返回信息,返回信息中含有了发出去的明文验证码; 这种验证码对开发和it打交道的人来说,贻笑大方。
3.短信验证码发出去了,短信验证码存在session中,原来是手机号11111111111的人发出去的验证码,手机号从新填写成22222222222,验证码输入收到的验证码,发现2222用户注册成功。这种验证码也。。。。
4. 短信验证码发出去了,短信验证码和手机号进行绑定了,这时候通常是将验证码存DB了
1. 验证的时候,若是用户第一次输入的验证码无效,是否能够当即输入新的短信验证码,短信验证码是否必须从新获取
2 短信验证码发出去了,用户收到短信“1分钟内有效”,“30分钟内有效”,系统是否真的作了时效的限制
3. 用户给本身发送了多条短信验证码,是否每次都到的短信验证码如出一辙
4. 用户给本身发送了多条短信验证码,每次不同,验证的时候,是否必须用最新的一条
5. 用户验证短信验证码,是否有次数的要求,短信验证码也是很固定的,通常是4位数字,或者6位数字,若不作次数的限制,用工具老是能够很快地能够试出正确的那个验证码