0x00:前言
上周做渗透,有一个 sql 注入,负责安全审核的人给开发说你们的程序既然还有 sql 注入,我一年也看不见几个。这句话让我又再次深刻的认识到,渗透测试常规的一些注入跨站漏洞不如以前那么盛了,有点经验的开发写东西都会去考虑到了,再加上修复方法也在逐渐的完善,逻辑类的东西也应该并重的去测。
0x01:分类
我把逻辑类的问题大概总结了一下,大概可以分为十个模块,分别是登录认证模块测试、业务办理模块测试、业务授权访问模块测试、输入 / 输出模块测试、回退模块测试、验证码机制测试、业务数据安全测试、业务流程乱序测试、密码找回模块测试、业务接口调用模块测试。
0x02:登录认证模块测试
1,暴力破解测试
测试方法:例如登录,输入账号密码,burp 拦截包发送到 Intruder,把系统变量的 $ 符 clear 掉,给密码加上 add,加载上密码字典,根据返回的长度或者 response 的信息来判断正确密码。
经验之谈:在测试中如果给了密码,例如 admin888,可以直接给 888 这一段 add,然后把 888 设置成 number 从 111 加到 999 来测,不用加载字典,只要确定可以暴力破解就行。
修复方法:一、增加验证码,登录失败的时候,变换验证码。(登录失败,验证码不变不算。验证码工具可识别不算。)二、限制登录频率,例如,5 分钟内登录失败次数超过 10 次则锁定账号 1 小时。三、可以添加手机验证码