0x00:前言
上周做渗透,有一个 sql 注入,负责安全审核的人给开发说你们的程序既然还有 sql 注入,我一年也看不见几个。这句话让我又再次深刻的认识到,渗透测试常规的一些注入跨站漏洞不如以前那么盛了,有点经验的开发写东西都会去考虑到了,再加上修复方法也在逐渐的完善,逻辑类的东西也应该并重的去测。
0x01:分类
我把逻辑类的问题大概总结了一下,大概可以分为十个模块,分别是登录认证模块测试、业务办理模块测试、业务授权访问模块测试、输入 / 输出模块测试、回退模块测试、验证码机制测试、业务数据安全测试、业务流程乱序测试、密码找回模块测试、业务接口调用模块测试。
这次记录的是第六个模块验证码机制测试。
0x02:验证码机制
1,验证码暴力破解测试
测试方法:只要是有接收验证码的功能都可以测试,发送到任意一个手机号,随便输入验证码,拦截包发送到 intrude,只给验证码加 $,直接使用 burte forcer 把爆破字符设置成 0-9,爆破后根据长度排序即可。
修复方法:设置验证码的失效时间,建议为 180 秒。同时限制单位时间内验证码失败的尝试次数,例如 5 分钟内连续失败 5 次即锁定账号半小时。
2,验证码重复使用测试
测试方法:一个提交请求带验证码的功能,输入正确验证码后拦截请求到 repeater,不修改验证码,修改其他参数信息,看是否可以重复提交,如果重复提交成功,则存在此问题。发生此