基于Burpsuite的安全测试十五:密码找回模块测试
情景1:验证码客户端回显测试
- 有些网站会选择将验证码回显在响应body中,和用户前端输入的验证码做一致性判断,如果一致就会通过校验。比如,在找回密码过程中,需要输入邮箱再点击发送验证码,此时抓包会发现请求参数发送的是输入的邮箱,(将邮箱改为自己的邮箱也可尝试是否可以收到验证码),查看响应包,如果响应包中包含了验证码,则攻击者可以直接把该验证码输入到验证码框中从而进入下一步更改密码,就绕过了必须只有通过用户邮箱才能看到验证码。
系统修复方案:
不要在响应包中返回验证码,验证码一定要放到服务器端校验。
情景2:验证码暴力破解测试
- 如果没有对验证码试错次数做限制,验证码容易被暴力破解。首先观察验证码发送内容的规律,如为4位/6位数字,抓取验证码校验请求,在页面中随意输入4位/6位数字并下一步,将抓取到的请求包发送至Burp suite的Intruder模块中,并将验证码参数标记为变量,导入密码字典进行枚举测试,根据响应结果的长度来判断测试结果。
系统修复方案
对校验码采用错误次数限制并提高验证码的复杂度。
情景3:接口参数账号修改测试
- 如在找回密码逻辑中,如果客户端发送的账号参数被篡改而服务器端没有对账号逻辑控制好,最终可导致用户密码被篡改。当输入邮箱点击发送重置密码按钮时抓包,对于接口入参中可以更改用户邮箱,比如改为攻击者自己的账号,服务器端并没有校验邮箱是否为该账户绑定的邮箱,所以会将修改密码链