基于Burpsuite的安全测试十二:验证码机制测试
常见的验证码有图形验证码、短信验证码、邮箱验证码、滑动验证码、语音验证码
情景1:验证码暴力破解测试
- 短信验证码一般为4-6位数字组成,如果没有失效时间和尝试失败次数的限制,就可以在这个区间尝试暴力破解。
- 注册的时候,输入手机号点击获取验证码此时用Brup Suite抓取数据包,点击注册后通过抓取的包中对验证码参数进行暴力破解,破解范围为000000-999999、00000-99999、0000-9999。
- 通过返回值的长度判断哪个是正确的验证码,输入验证码输入框中成功注册。
系统修复方案:
设置验证码失效时间,如120s。
限制试错次数,如果10分钟内连续失败5次则锁定账号一天。
情景2:验证码重复使用测试
- 如用户在页面输入内容,并输入验证码,提交信息,通过抓到的包,修改提交内容后重复提交信息,可以提交成功。这种情况就行因为验证码在一次认证成功后,没有将认证成功的session清空,所以导致可以重复使用该验证码。
系统修复方案:
为了防止验证码一次认证反复使用的问题,可以在一次认证成功后服务器端清空认证成功的session。
情景3:验证码客户端回显测试
- 如果验证码在客户端生成而不是在服务端生成,就容易发生验证码泄漏问题。如重置密码功能,在前端页面输入他人手机号后获取验证码,通过抓包发现验证码在本地生成,输入本地生成的验证码后就可以继续操作,重置密码成功。