短信验证码和安全那点事

短信验证码常被用于网站用户注册、安全登录以及忘记密码、修改绑定手机号码等应用场景,特别是一些涉及到用户个人敏感行为时候,为了确认操作是用户本人执行的通常会使用短信验证码进行二次认证。那么很多网站的短信验证码接口都会或多或少的存在一些逻辑漏洞

常见漏洞

一、  短信轰炸

短信发送接口平台未设置上限或时间间隔,攻击者利用发送短信的接口,短时间内发送大量垃圾短信给指定手机号码。使用抓包软件可以重放请求对于后端没有做限制的网站即可达到短信轰炸的效果。

图片.png

漏洞预防

主要是针对单用户的短信轰炸,即重放发送请求且phonenum为一个值。

①设置发送间隔,即单一用户发送请求后,与下次发送请求时间需要间隔60秒。

②设置单用户发送上限,即设置每个用户单位时间内发送短信数的上限,如果超过阈值就不允许今天再次调用短信接口(阈值根据业务情况设置)。

漏洞实例:http://bobao.360.cn/snapshot/index?id=12764

二、无效验证

有验证码模块,但验证模块与业务功能没有关联性,此为无效验证,一般在新上线的系统中比较常见。

1. 获取短信验证码后,随意输入验证码,直接输入两次密码,可成功更改用户密码,没有对短信验证码进行验证,可能导致CSRF等问题。

图片.png

2.任意用户注册

第一步,利用自己的手机号接收验证码进行验证,下一步跳转到一个设定密码的页面

第二步,抓包,篡改手机号,使用任意手机号进行注册

问题剖析:业务一致性存在安全隐患,身份验证与密码修改过程分开,验证无效。

图片.png

3. 任意手机号码绑定

第一步,按照正常程序进行注册,注册成功之后,在个人资料中修改绑定手机号码。

第二步,抓包,修改绑定手机号码,新手机号任意填写,获取短信验证码后,输入任意验证码,绑定任意手机号码。

图片.png

三、客户端验证绕过

     客户端验证是不安全的,可能导致任意账号注册、登录及重置任意用户密码等一系列问题。
    1.直接返回短信验证码
      第一步,按照正常注册流程走,开启抓包工具,抓到数据包后。
      第二步,放包,查看返回包中是否包含短信验证码。
图片.png
     漏洞实例:http://bobao.360.cn/snapshot/index?id=12764
     2.返回密文短信验证码
        测试方法同上
     3.本地拦截替换返回包
       第一步:按照正常业务流程进行注册、修改密码、密码找回等业务操作、开启burpsuite抓包。
       第二步:观察返回包中是否包含状态码,如Y与N、true与false、Error与Success等等,尝试修改状态码,放包,观察返回包结果。
       同样,也可以先按照正常业务流程进行业务操作,同时开启burosuite抓取正常数据包,记录下来。接着再进行测试。
2.png

四、验证码与手机号未绑定

一般来说短信验证码仅能使用一次,验证码和手机号未绑定,验证码一段时期内有效,那么就可能出现如下情况:

1、A手机的验证码,B可以拿来用;

2、A手机在一定时间间隔内接到两个验证码,都可以用。

测试步骤:

第一步:使用自己手机号收取验证码

第二步:将自己的验证码和对方的手机号填上,下一步设置新密码

五、验证码爆破

短信验证码一般由4位或6位数字组成,若服务端未对验证时间、次数进行限制,则存在被爆破的可能。

 

未经允许不得转载(声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:net-net@foxmail.com进行举报,并提供相关证据,工作人员会在10个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。):策信智库资讯网 » 短信验证码和安全那点事

赞 (0)