验证码测试点

验证码是保障系统安全的一道屏障,常见的验证码有图片、手机短信等多种形式。

系统使用类似卡号、学号可以规则生成的userID,或者可以被收集的邮箱账号,验证码被绕过后,就可以使用弱密码逐个撞账号。

客户端
客户端生成验证码只在客户端验证,模拟post请求即可直接绕过验证。

验证码输出到客户端,例如验证码输出在cookie、html、js中,检查字段属性、图片名等排查

服务端:
1.验证码不过期,没有及时销毁会话导致验证码复用,通过重发攻击可以直接绕过

2.没有进行非空判断,验证码为空的情况

3.修改/去掉cookie或url中的某些字段值,绕过验证码验证
例如:url中字段needcheckcode=true改成false、去掉参数 /?verify_code=1 、codeLen修改为0等
访问不同的页面default2.aspx改为default3.aspx或default5.aspx等
登陆账号后修改cookie中的usrid查看任意账号

4.重复多次提交固定值,是否可绕过验证码

5.万能验证码

6.验证码不能太简单,4位纯数字容易被爆破,通过扭曲、变形、干扰等方法防止图片识别