Web 攻防之业务安全:密码找回安全案例总结.

news2025/2/26 13:39:04

Web 攻防之业务安全:密码找回安全案例总结

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


目录:

密码找回安全案例总结:

密码找回凭证可暴力破解:

密码找回凭证直接返回给客户端:

密码重置凭证已用户账户关联不严:

重新绑定用户手机:

服务端验证码逻辑缺陷:

本地验证服务端的返回信息----修改返回包要过验证:

注册覆盖----已存在用户可被重复注册:

Session 覆盖方式重置其他账号密码:

防范密码找回漏洞的相关措施:


免责声明:

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


密码找回安全案例总结:

密码找回凭证可暴力破解:

密码找回凭证是指在密码找回过程中,服务器向用户的注册手机或者邮箱中发送验证码或特殊构造的URL等用于用户自证身份的信息,当用户凭证的验证次数未做限制或限制不严可被绕过时,攻击者可以通过暴力破解枚举用户凭证的方式冒充该用户重置密码


密码找回凭证直接返回给客户端:

有些信息系统在密码找回功能的设计上存在逻辑漏洞,可能会将用于用户自证身份的信息的密码找回凭证以各种各样的方式返回到客户端。这样攻击者只要通过在本地抓取数据包,并给其内容加以分析,就能获取到其他用户的密码找回凭证,从而冒充该用户重置密码.


密码找回凭证暴露在请求链接中

第一步:进入某网站登陆处,点击忘记密码,选择通过注册手机找回密码。

第二步:输入手机号码,点击获取验证码,使用 Burp Suite 抓包查看请求的链接中存在的验证码。

第三步:直接输入请求链接中暴露出来的验证码即可修改密码。


网页源代码中隐藏着密保答案

第一步:进入到某网站点击 " 找回密码 " 按钮,再点击 " 网上申诉 " 链接.

第二步:在网上。申诉页面直接查看源代码,发现源代码中不但有密码提示问题,还在 Hide 表里隐藏着问题答案。通过该方法,可获得任意用户修改密码问题答案,从来可以修改其他用户密码.


短信验证码返回给客户端:https://tianyuk.blog.csdn.net/article/details/130023416


密码重置凭证已用户账户关联不严:

有些信息系统在密码找回功能的校验逻辑上存在缺陷,只校验了密码重置凭证是否在数据库中存在,但未严格校验该重置凭证和用户账号之间绑定的关系,这种密码重置凭证与用户账户关联不严的逻辑漏洞,就让攻击者可以通过在数据包中修改用户账号达到重置其他账号密码的目的。


使用自己短信验证码找回别人密码.

第一步:进入到手机号码找回页面,填写自己的手机号码进行密码找回.

第二步:收到验证码后填入验证码和新密码提交,这个时候使用数据抓包工具 Burp Suite  进行抓包,将数据包中的 username 修改为其他账号,post 上交后可以使自己设置的密码登录其他账号。


重新绑定用户手机:

有些信息系统在绑定用户手机或者邮箱的功能上存在越权访问漏洞,攻击者可以利用该漏洞越权绑定其他用户的手机或者邮箱后,再通过正常的密码找回途径重新设置别密码。


重新绑定用户手机

第一步:首先注册一个某邮箱的测试账号,然后会跳转到一个手机绑定的页面上.

第二步:注意此时链接中有个参数为 uid,将 uid 修改为其别人邮箱账号,填入一个你可控的手机号码,获取到验证码,确定后这个目标邮箱已经被越权绑定了密保的手机.

第三步:走正常的密码取回流程,发现这个邮箱多了一个通过手机找回密码的方式,这个手机号码就是刚刚绑定的手机号码.

第四步:获取验证码并输入新的密码,最终成功重置了新目标账号的密码.


服务端验证码逻辑缺陷:

有些信息系统的服务端验证逻辑存在漏洞,攻击者可以通过删除数据包中的某些参数修改邮件发送地址或者跳过选择找回方式和身份验证的步骤,可以直接进入重置密码页面,成功重置其他人的密码。


删除参数绕过验证

第一步:某邮箱系统可以通过密码提示问题找回密码.

第二步:首先随机填写密码答案,然后进入下一步抓包后将问题答案的整个字段都删除再提交.

第三步:因服务端验证逻辑存在缺陷,无法获取到问题答案的情况下,直接通过了验证密码重置成功.


邮箱地址可被操控

第一步:有一些网站可以通过注册时填写的邮箱来找回密码,但防止网络不稳定等因素造成邮件发送失败,找回密码页面提供了重新发送邮件的功能。

第二步:点击重新发送邮件,然后抓包 Burp Suite 工具进行拦截请求,将数据包中的邮件地址改为自己测试的邮箱。

第三步:点击进入自己测试的邮箱,点击链接密码重置成功。


身份验证步骤可被绕过

第一步:进入某网站的密码找回功能,输入账号和验证码.

第二步:确定后,直接访问 http://**.***.com.cn/reset/pass.do 即可跳过选择找回方式和身份认证的过程直接,进入重置密码页面.


本地验证服务端的返回信息----修改返回包要过验证:

有些信息系统在密码找回功能的设计上存在逻辑漏洞,攻击者只需要抓取服务端的返回包,并修改其中的部分参数即可,跳过验证步骤直接进入密码重置页面。


修改返回包绕过验证:https://tianyuk.blog.csdn.net/article/details/130057199


注册覆盖----已存在用户可被重复注册:

有些信息系统的用户注册功能没有严格校验已存在的用户账号,导致攻击者可以通过反复注册其他用户账号的方式重置其他账号的密码.


第一步:进入某网站,点击用户注册,输入用户名,在鼠标离开输入框后会提示该账号已被注册。

第二步:输入一个未注册的用户名并提交表单,同时用抓包 Burp Suite 工具拦截数据包,并将 username 参数值修改为 admin

第三步:此时 admin 用户的密码被重复注册的方式修改了,但原用户的所有信息却没有修改,也就是说这样攻击者获取了用户的所以信息,包括:姓名,身份证,手机号,等信息.


Session 覆盖方式重置其他账号密码:

有些服务器密码找回功能的服务端校验存在漏洞,攻击者使用密码找回链接重置密码时,通过 Session 覆盖的方式成功重置其他账号的密码。


第一步:使用自己的账号进行密码找回.

第二步:收到邮件后先不要点击链接.

第三步:在同一个浏览器内打开网站再次进入密码找回页面,输入其他人的账号。

第四步:点击找回密码邮件后,停止在该页面。

第五步:在同一个浏览器里打开第二步中自己邮件中收到的链接,然后设置一个新的密码。

第六步:使用新设置的密码成功登陆进了别人的账号.


防范密码找回漏洞的相关措施:

(1)在密码找回功能设计时对用户的凭证验证次数和频率进行限制,防止攻击者对用户凭证的暴力枚举攻击.

(2)对密码找回的各个环节进行梳理,记录分析所有交互数据,避免密码找回凭证等敏感信息直接返回给客户端.

(3)对服务端密码重置 Token 的生成算法进行审计,避免使用容易被攻击者破解的简单算法.

(4)密码重置凭证应与账户严格绑定,并设置有效的时间,避免攻击者通过修改账户 ID 的方式重置其他账号的密码.

(5)对客户端传入的数据要进行严格的校验,手机号,邮箱地址等重要信息应和后台数据中已存储的信息进行核对,不应从客户端传入的参数中直接取用,避免攻击者通过篡改传入的数据方式重置其他账号的密码.

(6)对用户注册,手机邮箱绑定等业务逻辑进行审计,避免攻击者通过用户重复注册和越权绑定等漏洞,间接重置其他账号密码.

    

    

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/427317.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微软New Bing初体验:AI时代的搜索引擎(内含体验方法)

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

AI未来十年新范式,生成式人工智能的挑战与机遇

目录0 写在前面1 什么是生成式模型?2 生成式模型的挑战3 自主智能新架构4 持续学习与表征解耦4.1 学习范式4.2 学习架构5 生成式AI与元宇宙6 智慧文档:赋能数字化转型7 结语0 写在前面 2023年3月18日,由中国图象图形学学会(CSIG&…

【李老师云计算】HBase+Zookeeper部署及Maven访问

索引前言1. Zookeeper1.1 主机下载Zookeeper安装包1.2 主机解压Zookeeper1.3 ★解决解压后文件缺失1.4 主机配置Zookeeper文件1.4.1 配置zoo_sample.cfg文件1.4.2 配置/data/myid文件1.5 主机传输Zookeeper文件到从机1.6 从机修改Zookeeper文件1.6.1 修改zoo.cfg文件1.6.2 修改…

生成器设计模式(Builder Design Pattern)[论点:概念、图示、示例、框架中的应用、场景]

文章目录概念相关图示代码示例框架中的应用场景多个生成器(Concrete Builder):单个生成器概念 生成器设计模式(Builder Design Pattern)是一种创建型设计模式,用于处理具有多个属性和复杂构造过程的对象。生…

【Linux学习】信号——信号保存 | 信号处理 | 不可重入函数,volatile,SIGCHLD信号

🐱作者:一只大喵咪1201 🐱专栏:《Linux学习》 🔥格言:你只管努力,剩下的交给时间! 信号的产生以及详细讲解了,有兴趣的小伙伴可以去看看,传送门。接下来介绍…

快速尝鲜Oracle 23c免费开发者版,惊喜多多

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

hive数据仓库--Hive介绍

1 什么是HiveHive是基于Hadoop的⼀个数据仓库⼯具,⽤来进⾏数据提取、转化、加载,这是⼀种可以存储、查询和分析存储在Hadoop中的⼤规模数据的机制。Hive数据仓库⼯具能将结构化的数据⽂件映射为⼀张数据库表,并提供类SQL的查询功能&#xff…

spring(七):事务操作

spring(七):事务操作前言一、什么是事务二、事务四个特性(ACID)三、事务操作(搭建事务操作环境)四、事务操作(Spring 事务管理介绍)五、事务操作(注解声明式事…

SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】

文章目录前言1、分布式情况下如何加锁2、具体实现过程3、测试3.1 一个服务按照多个端口同时启动3.2 使用jmeter进行压测前言 上一篇实现了单体应用下如何上锁,这一篇主要说明如何在分布式场景下上锁 上一篇地址:加锁 1、分布式情况下如何加锁 需要注意的点是: 在上锁和释放…

C/C++每日一练(20230412)

目录 1. 二维数组找最值 🌟🌟 2. 排序 🌟 3. 二叉树展开为链表 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 二维…

使用ebpf 监控golang 应用

一、背景 使用ebpf 监控grpc-go的应用,grpc-go http2 client的处理点 func (l *loopyWriter) writeHeader(streamID uint32, endStream bool, hf []hpack.HeaderField, onWrite func()) error { ...... }// operateHeaders takes action on the decoded headers. f…

大数据 | Hadoop集群搭建(完全分布式)

知识目录一、前言二、配置三台虚拟机2.1 克隆三台虚拟机2.2 配置克隆的虚拟机2.3 使用Xshell连接虚拟机2.4 配置SSH免密登录三、Hadoop集群准备3.1 安装 rsync3.2 安装xsync分发脚本3.3 安装JDK和安装Hadoop3.4 配置环境变量3.5 分发四、Hadoop集群搭建4.1 修改配置文件4.2 配置…

Python数据分析案例24——基于深度学习的锂电池寿命预测

本期开始案例较为硬核起来了,适合理工科的硕士,人文社科的同学可以看前面的案例。 案例背景 这篇文章是去年就发了,刊物也印刷了,现在分享一部分代码作为案例给需要的同学。 原文链接(知网文章 C核)&…

OSPF的优化

O_ASE --- 标志域外路由信息 --- 因为域外的路由信息不可控性较强,所以,信任程度较低,我们将其优先级设置为150。 LSA --- 链路状态通告 --- OSPF协议在不同网络环境下产生的用于携带和传递不同的信息。 LSDB --- 链路状态数据库 SPF --- 最短…

【数据分析实战】基于python对Airbnb房源进行数据分析

文章目录📚引言📖数据加载以及基本观察📃缺失值观察及处理🔖缺失值观察以及可视化🔖缺失值处理📃异常值观察及处理📖数据探索💡哪个区域的房源最受欢迎?💡哪种…

基于opencv的边缘检测方法

1、梯度运算 用OpenCV的形态变换( 膨胀、腐蚀、开运算和闭运算)函数morphologyEx 梯度运算即膨胀结果-腐蚀结果: 【注意】对于二值图像来说,必须是前景图像为白色,背景为黑色,否则需要进行反二值化处理 …

Mybatis【第一个 Mybatis 程序】

目录 一、Maven 环境配置 1、配置 pom.xml 1.1、依赖的 jar包 1.2、防止资源导出失败 2、在resources下编写 Mybatis核心配置文件 二、搭建结构 1、编写mybatis工具类(utils) 2、编写实体类(pojo) 3、Mybatis 的实现&…

【Vue3实践】(六)Vue3使用vite处理环境变量、打包部署、nginx配置

文章目录1.前言2.环境变量2.1.环境变量文件(.env)2.2.环境变量变量定义与使用3.打包部署3.1.nginx配置3.2.静态站点根路径配置4.总结1.前言 由于在日常开发中会有一部分前端的开发任务,会涉及到Vue的项目的搭建、迭代、构建发布等操作,所以想系统的学习…

Linux:主机USB设备驱动简析

文章目录1. 前言2. 分析背景3. USB 总线硬件拓扑4. USB 协议栈概览4.1 Linux USB 子系统概览4.2 USB外设(如U盘)固件基础5. Linux USB 子系统初始化6. Linux USB 主机控制器(HCD) 驱动6.1 USB 主机控制器驱动初始化6.2 USB 主机控制器设备对象注册和驱动加载7. Linux USB 设备驱…

Chatgpt接入Csdn:实现自动回复、评论、点赞

背景 起初,我只是想自己弄个工具,用来处理一下大佬们的三连支持,后面我发现大家都在讨论chatgpt,于是我将自动回复和评论消息接入到了Csdn中,不知道这篇文章能不能发出来,代码的话暂时不开源,后…