短信验证码爆破
验证码 短信 爆破
2023-06-13 09:15:12 时间
前言
持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
0x01 漏洞描述
- 短信验证码爆破 -
短信验证码一般由4位或6位数字组成,若服务端未对验证时间、次数进行限制,则存在被爆破成功的可能性。输入手机号获取验证码,输入任意短信验证码发起请求并抓取数据包,将短信验证码参数字段设置成payloads取值范围为000000-999999进行暴力破解,根据返回响应包状态或长度等特征进一步判断是否爆破成功。
0x02 漏洞等级
威胁级别 | 高危 | 中危 | 低危 |
---|
0x03 漏洞验证
输入手机号获取验证码,再输入任意验证码值并抓取请求数据包。
根据验证码请求的返回的内容或者数据包长度可以判断验证码是否匹配成功,当验证码匹配错误时统一返回包长度440,当验证码匹配正确时返回包长度为436。
由于系统没有对提交验证码错误次数做任何限制,因此可以对验证码参数值进行无限枚举,直至爆破匹配成功。
0x04 漏洞修复
- 每次生成新验证码时,统一设置验证码的有效时间,验证码仅在限定时间内有效。
- 设置验证码输入错误次数限制,例如:每输错3次验证码,必须作废并要求生成新验证码。
- 避免使用简单验证码。
相关文章
- android 验证码短信验证码,Android短信验证码倒计时验证的2种常用方式
- Android获取短信验证码并自动填充的两种方式「建议收藏」
- 记一次验证码裂开问题
- SpringBoot|Spring-Data-Redis 验证码短信存储服务
- 一文带你看透短信验证码
- 阿里云短信服务验证码封装 v1.0.1【flc/dysms】
- 【总结】Java实现短信验证码
- 阿里云短信服务验证码封装类 v1.0.0【flc/dysms】
- java实现验证码功能(只是显示,还没有提交验证功能)详解编程语言
- 安全保护:基于Redis的短信验证码(redis短信验证码)
- Google Chrome正设法将短信验证码从手机自动读取到PC上
- 如何利用Redis有效保存验证码(验证码存入redis)
- 短信验证码安全存储至Redis(短信验证码存到redis)
- 测试Redis确保验证码安全性(测试redis验证码)
- 实现基于Redis的注册验证码系统(注册验证码放入redis)
- 用Redis实现验证码功能的简易实现(redis验证码功能)
- 用PHP实现验证码功能
- JSP彩色验证码
- jsp引用servlet生成的验证码代码演示
- 生成随机字符串和验证码的类的PHP实例