Web 攻防之业务安全:密码找回流程绕过测试

Web 攻防之业务安全:密码找回流程绕过测试.-LMLPHP

业务安全是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台(操作系统、数据库,中间件等)、业务系统自身(软件或设备)、业务所提供的服务安全狭义的业务安全指业务系统自有的软件与服务的安全


目录:

密码找回流程绕过测试:

测试原理和方法:

测试过程:

第一步:先注册一个自己的账号,用于测试所有过程,在找回密码页面中先输入自己的账号,点击下一步按钮,进入找回密码页面的 RUL 为 GET/account/findPassword.html

第二步: 进入凭证验证流程,这里使用自己的账号,所以直接获取验证凭证,输入后点击下一步。第二步的验证凭证 URL 为 GET/forgetpwd/findPassNext.do

第三步:通过验证以后就可以进入第三步重置密码了。第三步的验证凭证 URL 为 GET/forgetpwd/cmailValidateNext.do

第四步:通过使用自己的账号所有正常顺序流程找回密码,我们也获得到了所有的URL为:

第五步:我们可以尝试在第一步输入账号后进入第二步验证身份页面,在这个页面直接修改 URL 为第三步的 URL,访问看看可不可以直接进入密码重置页面。如果可以,则存在密码找回流程绕过风险.

修复建议:


免责声明:

严禁利用本文章中所提到的技术进行非法攻击,否则后果自负,上传者不承担任何责任。


密码找回流程绕过测试:

测试原理和方法:

很多网站的密码找回功能一般有以下几个步骤:

(1)用户输入找回密码的账号.

(2)校验凭证:向用户发送短信验证码或者找回密码的链接,用户回填验证码或点击链接进入密码重置页面,以此方法证明当前操作是账号的主人.

(3)校验成功进入重置密码页面.

在找回密码逻辑中第二步校验凭证最为重要,不是账号主人是无法收到验证凭证的。试想有没有方法可以要过第二步校验凭证,直接进入第三步重置密码。用户修改密码需要向服务器发送修改密码请求,服务器通过后再修改数据库中对应的密码,所以在测试中我们首先要收集三个步骤的请求接口,重点是收集到最后一步重置密码的接口,这样我们可以直接跳过凭证校验的接口去尝试直接重置密码.


测试过程:

第一步:先注册一个自己的账号,用于测试所有过程,在找回密码页面中先输入自己的账号,点击下一步按钮,进入找回密码页面的 RUL 为 GET/account/findPassword.html


第二步: 进入凭证验证流程,这里使用自己的账号,所以直接获取验证凭证,输入后点击下一步。第二步的验证凭证 URL 为 GET/forgetpwd/findPassNext.do


第三步:通过验证以后就可以进入第三步重置密码了。第三步的验证凭证 URL 为 GET/forgetpwd/cmailValidateNext.do


第四步:通过使用自己的账号所有正常顺序流程找回密码,我们也获得到了所有的URL为:

(1)GET/account/findPassword.html                //输入用户账号页面

(2)GET/forgetpwd/findPassNext.do                 //验证码身份页面

(3)GET/forgetpwd/cmailValidateNext.do                //设置新密码页面


第五步:我们可以尝试在第一步输入账号后进入第二步验证身份页面,在这个页面直接修改 URL 为第三步的 URL,访问看看可不可以直接进入密码重置页面。如果可以,则存在密码找回流程绕过风险.


修复建议:

防止跳过验证步骤,一定要在后端逻辑校验中确定上一步流程已经完成了。

    

   

学习的书籍:Web 攻防之业务安全实战指南.

04-13 03:53