密码找回流程绕过测试
测试原理和方法
很多网站的密码找回功能一般有以下几个步骤
(1) 用户输入找回密码的账号:
(2) 校验凭证:向用户发送短信验证码或者找回密码链接,用户回填验证码或单击链接进入密码重置页面,以此方式证明当前操作用户是账号主人;(3) 校验成功进入重置密码页面。
在找回密码逻辑中,第二步校验凭证最为重要。不是账号主人是无法收到校验凭证的,试想有没有办法可以绕过第二步凭证校验,直接进入第三步重置密码呢?
用户修改密码需要向服务器发送修改密码请求,服务器通过后再修改数据库中相应的密码,所以在测试中我们首先要收集三个步骤的请求接口,重点是收集到最后一步重置密码的接口,这样我们可以直接跳过凭证校验的接口去尝试直接重置密码。
在下面的密码找回案例中,需要用户填写要找回的账号然后验证身份,之后才可以进入设置新密码的页面,我们需要对这个流程所有请求的接口做分析,找出最后一步重置密码的接口,接着使用URL测试是否可以跳过验证身份环节。
测试流程
步骤一:先注册一个自己的账号用于测试所有流程,如图 所示,在找回密码页面中先输入自己的账号单击“下一步”按钮,找回密码页面URLGET/account/findPassword.html.
步骤二:进入凭证验证流程,这里使用的是自己的账号,所以直接获取凭证,输入后进入下一步,如图所示。当前第二步的验证凭证
URL为 GET/forgetpwd/findPas