当前位置: 首页 > article >正文

Web 攻防之业务安全:密码找回流程绕过测试.(利用链接跳到后面去)

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

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


目录:

密码找回流程绕过测试:

测试原理和方法:

测试过程:

第一步:先注册一个自己的账号,用于测试所有过程,在找回密码页面中先输入自己的账号,点击下一步按钮,进入找回密码页面的 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 攻防之业务安全实战指南.


http://www.kler.cn/news/10044.html

相关文章:

  • 【华为OD机试真题】计算至少需要多少个快递主站点(javapython)
  • 代码随想录算法训练营第四十八天-动态规划9|198. 打家劫舍,213. 打家劫舍 II,337. 打家劫舍 III
  • 基于虚拟同步发电机的孤岛逆变器控制策略(孤岛VSG)
  • 数组的ES6方法(回顾)
  • GPTCache:LLM 应用必备的【省省省】利器
  • 数据模型的基础知识
  • Bootstrap学习笔记(1.0)
  • Cheaptrick算法
  • 30个思科设备巡检命令,值得每位网络工程师收藏!
  • 面试了上百位性能测试后,我发现了一个令人不安的事实...
  • Netty进阶《Future和Promise详解》
  • 从《移动互联网应用程序(App)收集使用个人信息自评估指南》看个人信息保护着力点
  • 结合ESP32浅谈一下:芯片、模组、开发板的关系
  • 七大排序
  • C++之 继承 (inheritance)
  • 【HDR图像处理】HDR图像的色调映射 | python+opencv代码实现总结
  • ASEMI代理ADA4940-1ACPZ-R7原装ADI车规级ADA4940-1ACPZ-R7
  • Zookeeper集群 + Fafka集群
  • Mysql数据库存储过程
  • 实现mini智能助理—模型训练
  • 五、手把手搭建K8S保姆级教程
  • Python 进阶指南(编程轻松进阶):十七、Python 风格 OOP:属性和魔术方法
  • __builtin_xxx指令学习【3】__builtin_popcount __builtin_popcountll
  • ROS开发之如何使用RPLidar A1二维激光雷达?
  • 基于DSP+FPGA的机载雷达伺服控制系统的硬件设计与开发(一)总体设计
  • VMware vSphere 8.0c - 企业级工作负载平台
  • 腾讯云GPU服务器NVIDIA P40 GPU、P4、T4和GPU自由卡详解
  • 如何测试物联网安全性
  • Linux命令·lsof
  • 数据库导入报错:1452,1832,1215 - Cannot add foreign key constraint 等错误