一、漏洞原理
短信轰炸是手机验证码漏洞中最常见的一种漏洞类型。主要原因是未对发送次数做限制或者验证逻辑有误,导致可以无限发送验证码,导致达到短信“轰炸”效果。
二、常见测试位置
-
在登录框,短信/邮箱注册的地方
-
校验敏感操作,会用短信/邮箱校验
-
绑定账号、活动领取
-
在JS文件发现接口
三、各大SRC对短信轰炸漏洞的定义
1分钟或指定时间内对任意指定手机号码发送30或50条以上短信,绕过或没有任何限制。(各个厂商可能略有区别)
四、短信轰炸分类
-
横向轰炸:向多个手机号发送短信(SRC基本不收取)
-
纵向轰炸:向单个手机号发送短信
五、绕过技巧
1.添加垃圾字符:例如@、空格、逗号等一些特殊字符,常见参数是这样的:mobile=xxxxx,一般都会有5次机会或者1分钟后才能发送,但当在手机号的前面或者后面加上空格的时候就又可以发送5次或者绕过时间限制,在前面加上空格,每加一个空格就会有反复发送短信。
2.其他参数:比如:type=01&Mobile=xxxxx,前面的接口是调用短信发送内容的接口,比如type参数值为01是调用注册成功的短信提示,02是调用密码重置成功的短信提示,03是调用注册成功的提交评论等等,当遍历这个参数的值,也可能造成短信轰炸。
3.双写:双写手机号码,mobile=xxxx&mobile=xxxx或mobile=xxxx,yyyy;有时会可能会两个手机号码收到一样短信,可能会造成更大危害。
4.XFF伪造:有的接口是根据IP来限制短信发送数量,如果当前IP短时间内获取短信频繁或者达到一定次数的话就会出现限制,这时候在请求头添加XFF头可能会绕过限制。
5.删除请求包中可能会校验的参数:例如Cookie、xxx_Id,有些接口可能不是直接验证手机号来判断次数,而是验证当前Cookie或者其他的校验参数,利用当前Cookie来进行验证发送次数的话,很容易造成绕过,这里如果验证的不是登录状态的Cookie而是普通状态下的Cookie的话就可以通过修改或直接删除Cookie达到绕过验证。
6.并发:使用工具对发送短信的数据包进行并发,例如Fiddler。
如何对数据包进行并发参考:https://www.cnblogs.com/Dengv5/p/16504550.html
最后总结成思维导图
- End -
原文始发于微信公众号(希石安全团队):【漏洞】SRC之短信轰炸挖掘技巧
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论