短信验证码漏洞都有哪些? 如何修补
有些网站是用手机短信登录的,短信验证码可以绕过,开展别的操作。检验方法:一、请求发送一条短信,填写一个验证码,然后提交另一个操作请求,验证码的参数是空的,或者是删除的,测试检测是否可以忽略;二、使用000000、111111等特权验证码;三、同一SMS验证码能否多次使用。
例子:在获得短信验证码后,服务器应检查短信验证码的来源及有效性,使用一次后应立即失效。但我遇到的这件事就是用验证码登录,注销用户登录后发现用验证码再次登录仍然成功,也就是说短信验证有没有被删除。
危险分析:更改/重置密码、交易操作等功能通常需要SMS验证码,如果可以绕过验证码,攻击者就可以用它来开展危险的操作,如重新设置别人的密码或转移资金。
修复方案:1.如果存在特权验证码,则建议删除它;2.应用程序端应该严格检查验证码参数是否为空,并且是格式正确的;3、每次提交请求时,关键操作应发送新的SMS验证码,而不能继续使用旧的验证码。
SMS验证码可以暴力破解。漏洞说明:SMS验证码位数过短或有效期过长都会导致暴力破解。
检验方法:单击发送SMS验证码,输入任意验证码,提交请求,使用burpsuite截获请求,在intruder模块中将验证码参数设置为枚举变量,payload类型为numbers,暴力破解验证码。
此处短信验证码是可以暴力破解的,是因为没有设置短信验证码使用错误次数之后就会失效,所以可以暴力破解。
危险分析:更改/重新设置密码、交易操作等功能通常需要SMS验证码,如果验证码被暴力破解,攻击者就可以利用这个漏洞开展危险的操作,如重新设置别人的密码或转移资金。
修复办法:一、短信验证代码不少于6位;二、最多有效期为一分钟;三、验证码错误的次数超过上限时,应采取锁定帐户的策略。
一种常见的攻击,攻击者通过网站上提供的短信验证码功能发送短信,通过获取其发送的信息包后,再开展重放,如果服务器上的短信平台没有做校验,系统将继续不停地发送短信,从而造成短信爆炸的漏洞。检验方法:手动查找有关网站的注册页面,认证页面,是否有短信发送页面,如果有,开展下一步。通过使用burp或别的抓包截断工具,抓取发送了验证码的数据包,并开展重放攻击,检查手机是否在短时间内连续收到10条以上短信,如果收到大量短信,说明存在漏洞。
在截取包的同时点击获取验证码。用burpsuite重放数据。黑客利用软件burpsuite的intruder功能,通过填写别人的手机号码,重复提交发送短信的请求包,从而在短时间内将大量垃圾短信发送到别人的手机。修复方案:合理配置后台短信服务器的功能,对于同一手机号码,发送次数不得超过3-5次,且发送间隔可以有一定限制。当页面前台代码编写后,添加到同一手机号上的发送次数不能超过N次,或添加到页面的验证码功能,并限制发送间隔。
- 点赞
- 收藏
- 关注作者
评论(0)