安全测试--短信轰炸
欢迎加本人微信:TryExcept417 与关注:‘自动化性能安全测试探索’公众号交流测试技术
短信轰炸:
由于程序的漏洞未有对短信发送做相应限制,通过工具循环调取发送短信的接口,达到恶意发送大量垃圾短信的目的;
短信轰炸的危害:
1)持续给手机号发送垃圾短信,造成极差的用户体验(不管短信内容是否为垃圾内容,如果该内容重复发送给用户一百次,那该短信肯定是对用户造成骚扰了);
2)对于公司来说,发送短信一般借助第三方运营商,每条短信需要支付费用,如果一天被刷几十万条,一天亏损上万也有可能;
3)如果短信内容被截获修改,可能就成为了一些诈骗份子的诈骗工具;
短信验证码轰炸fiddler简单实践:
1)打开测试页面;
2)截获请求:可以通过fiddler打断点实现,打开fiddler,按F11开启断点功 能 (或者通过RULES-->Automatic Breakpoints-->Before Request 开启)
注意:先开启fiddler设置好断点,然后才点击测试页面发送验证码;
3)复制截获的请求10个,按shift+r 快捷键(注意在英文状态下按快捷键)
4)选中这十个请求同时释放,点击GO按钮;
5)查收短信,期望:只收到一条短信验证码;
防止短信轰炸的方案:
1)对手机号码做验证,需填写正确手机号码才可以发送短信
2)设置图形验证码,验证码仅允许使用一次
3)同一个手机号码不能连续获取短信验证码,如设置1分钟仅允许获取一次
4)同一个手机号码一天设置最大发送验证码次数,如同一个手机号码一天最多发送十条
5)当同一个手机号码或者IP重复连续不断发起请求时,将该手机号码或者IP拉黑处理
6)与运营商协商方案对短信接口进行监控,如有异常,先将接口关闭,这个得根据具体的业务去定;
注意:fiddler简单实践中并不是只收到了一条短信验证码该接口就一定符合要求,fiddler的功能毕竟有限,大家可以想象用jmeter或者代码,然后结合我下面说的方案,想想方案里面每一点解决了什么问题,如果你是攻击者,你怎么绕开方案中的限制措施;
方案仅仅为个人实践经验,对于像上面的图示例中通过手机号码直接就可以获取到短信验证码的都是不合格的,试想下,随便构造几万个任意符合规则的手机号码并不困难,攻击成本相当低,而这种攻击却非常之多!
安全正变得越来越重要,而懂安全测试,无疑会为测试工程师加分不少,加油!!