短信验证码爆破

2022-11-15 20:35:08 浏览数 (1)

前言

持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。

0x01 漏洞描述

- 短信验证码爆破 -

短信验证码一般由4位或6位数字组成,若服务端未对验证时间、次数进行限制,则存在被爆破成功的可能性。输入手机号获取验证码,输入任意短信验证码发起请求并抓取数据包,将短信验证码参数字段设置成payloads取值范围为000000-999999进行暴力破解,根据返回响应包状态或长度等特征进一步判断是否爆破成功。

0x02 漏洞等级

威胁级别

高危

中危

低危

0x03 漏洞验证

输入手机号获取验证码,再输入任意验证码值并抓取请求数据包。

根据验证码请求的返回的内容或者数据包长度可以判断验证码是否匹配成功,当验证码匹配错误时统一返回包长度440,当验证码匹配正确时返回包长度为436。

由于系统没有对提交验证码错误次数做任何限制,因此可以对验证码参数值进行无限枚举,直至爆破匹配成功。

0x04 漏洞修复

  1. 每次生成新验证码时,统一设置验证码的有效时间,验证码仅在限定时间内有效。
  2. 设置验证码输入错误次数限制,例如:每输错3次验证码,必须作废并要求生成新验证码。
  3. 避免使用简单验证码。

0 人点赞