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

任意密码重置漏洞

文章目录

  • 1. 任意密码重置漏洞原理
  • 2. 任意密码重置漏洞产生原因
  • 3. 任意密码重置漏洞场景
    • 3.1 验证码爆破
    • 3.2 验证凭证回传
    • 3.3 验证凭证未绑是用户
    • 3.4 跳过验证步骤
    • 3.5 凭证可预测
    • 3.6 同时向多个账户发送凭证
  • 4. 任意密码重置经典案例
    • 4.1 中国人寿某重要系统任意账户密码重置
    • 4.2 米鼠网设计逻辑的缺陷可重置任意用户密码
  • 5. 权限绕过漏洞
    • 5.1 水平越权
    • 5.2 垂直越权

1. 任意密码重置漏洞原理

厂商在对密码修改功能设计的时候,未对修改密码的凭证做严格的限制,导致可以被绕过进行任意的密码修改。

2. 任意密码重置漏洞产生原因

在这里插入图片描述

3. 任意密码重置漏洞场景

3.1 验证码爆破

表现:

  • 验证码四位,服务端未对验证时间次数进行限制(出现次数比较多的地方);
  • 验证码六位,但是不过期(时间很久),并且没有对验证的次数进行限制;
  • 验证码可以发送多次,而且每次都不会过期。

利用:使用burp的爆破模块即可,或者自己编写脚本。

修复:使用六位验证码限制验证码认证次数

案例流程:

  • 重置密码发送手机验证码
  • 发现验证码只有四位
  • 利用burp进行爆破
  • 爆破成功
  • 重置密码

3.2 验证凭证回传

重置密码时,凭证为发送到手机上的验证码,但是通过拦截发送验证码请求对应的Response包时,发现验证码在Response包中。

重点:注意是凭证,有时候可能返回包里面凭证可能在cookie里面或者也有可能在其他地方。

解决方案:修改包的返回规则

案例:DeDecms任意密码重置

  • DeDecms是用户使用最多的PHP类cms系统,CMS 系统,即内容管理系统(Content Management System),此次该CMS的任意密码重置漏洞,通过遍历UID的方式获取返回的静态gourl跳转地址,而CMS未对更改密码的跳转地址进行参数隐藏导致更改密码的临时密码被泄露,泄露以后构造URL传入临时密码,可以不需要任何验证即可更改任意用户密码。

3.3 验证凭证未绑是用户

输入手机号和验证码进行重置密码的时候,仅对验证码是否正确进行了判断,未对该验证码是否与手机号匹配做验证。

表现:

  • 1.任意账号都能够接收到验证码并能够使用A手机的验证码,B可以拿来用
  • 2.A账号的修改密码连接,B账号可以拿来用

修复:

  • 1.在服务器进行有效验证,手机号和验证码在服务器进行唯─性绑定验证。
  • 2.在服务端限制验证码发送周期,设置时效,限制次数

常见案例:

  • 首次登录账号之后需要你绑定邮箱、手机号等情况。
  • 在绑定的时候修改绑定的账号id即可把自己的手机号等绑定到别人的账号上面。

3.4 跳过验证步骤

成因:对修改密码的步骤,没有做校验,导致可以输入最终修改密码的网址,直接跳转到该页面,然后输入新密码达到重置密码的目的。

测试:首先使用自己的账号走一次流程,获取每个步骤的页面链接,然后记录输入新密码的对应链接。重置他人用户时,获取验证码后,直接进入输入新密码对应链接到新密码的界面,输入密码重置成功。

3.5 凭证可预测

token可预测:使用邮件接受重置密码的链接时,一般都会带有一个token用于判断链接是否被修改过。如果token可以预测,那么攻击者可以通过构造链接来重置任意的用户密码。

表现:

  • 1.基于时间戳生成的Token
  • 2.基于递增序号生成的token
  • 3.基于关键字段生成的token
  • 4.token有规律
  • 5.验证规则过于简单

3.6 同时向多个账户发送凭证

将发送验证码的包截获,修改字段添加多个账户,再发包。发现所写的有效字段均发送了凭证。

4. 任意密码重置经典案例

4.1 中国人寿某重要系统任意账户密码重置

直接修改验证返回包即可重置密码,链接地址:https://cn-sec.com/archives/1557.html

其他相关案例:

  • 中国人寿任意用户密码重置二
  • 中国人寿任意用户密码重置(秒改)用户保单信息全部泄漏

4.2 米鼠网设计逻辑的缺陷可重置任意用户密码

手机号没有经过处理直接在请求包里看到,并且在源码里找到重置密码链接即可直接重置密码。链接地址:http://cn-sec.com/archives/724.html

5. 权限绕过漏洞

越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。越权又可以分为两种:水平越权垂直越权

5.1 水平越权

水平越权就是相同级别(权限)的用户或者同一角色的不同用户之间,可以越权访问、修改或者删除的非法操作。如果出现此类漏洞,那么将可能会造成大批量数据泄露,严重的甚至会造成用户信息被恶意篡改。

比如同一公司的员工 A 和 B,分别只能查看自己的一些个人资料,但是如果系统存在水平越权漏洞,则 A 可以通过这样个漏洞查看到 B 的资料。

水平权限漏洞一般出现在一个用户对象关联多个其他对象(个人资料、修改密码,订单信息,等)、并且要实现对关联对象的 CRUD 的时候。开发容易习惯性的在生成 CRUD 表单(或 AJAX 请求)的时候根据认证过的用户身份来找出其有权限的被操作对象 ID,提供入口,然后让用户提交请求,并根据这个 id 来操作相关对象。在处理 CRUD 请求时,往往默认只有有权限的用户才能得到入口,进而才能操作相关对象,因此就不再校验权限了。可悲剧的是大多数对象的 ID 都被设置为自增整型,所以攻击者只要对相关 id 加 1、减 1、直至遍历,就可以操作其他用户所关联的对象了。

案例:

  • 一次水平越权,导致平台两万人被修改密码
  • 小天才电话手表官网存在水平越权操作漏洞(影响用户积分安全)

5.2 垂直越权

水平越权是相同级别的用户之间的越权操作,而垂直越权则恰恰相反,是不同级别之间或不同角色之间的越权。

垂直越权又被分为向上越权向下越权。比如,某些网站,像发布文章、删除文章等操作是属于管理员做的事情,假设一个低权限用户或者根本没权限也可以做相同的事情,这就叫作向上越权,

向下越权与向上越权恰恰相反,向下越权是一个高级别用户可以访问一个低级别的用户信息。这样做似乎没错,而且很多网站都是这么做的,包括低级别密码也可以被高级别用户掌控,但这样做可以说是完全错误!因为即使权限再低的用户都有他自己的隐私,可能用户为了更方便,会将自己的银行卡号与密码记录在网站中,这些信息都属于用户的隐私。

案例:

  • Couchdb垂直权限绕过到命令执行

相关文章:

任意密码重置漏洞

文章目录 1. 任意密码重置漏洞原理2. 任意密码重置漏洞产生原因3. 任意密码重置漏洞场景3.1 验证码爆破3.2 验证凭证回传3.3 验证凭证未绑是用户3.4 跳过验证步骤3.5 凭证可预测3.6 同时向多个账户发送凭证 4. 任意密码重置经典案例4.1 中国人寿某重要系统任意账户密码重置4.2 …...

synchronized关键字和ReentrantLock在不同jdk版本中性能哪个高?该怎么选择呢?

synchronized关键字和ReentrantLock在不同JDK版本中的性能差异经历了显著的变化。早期,在JDK 1.5及以前的版本中,ReentrantLock通常提供了更好的性能,主要是因为synchronized关键字的实现较为简单,没有太多的优化,导致…...

【旭日x3派】部署官方yolov5全流程

地平线旭日x3派部署yolov5--全流程 前言一、深度学习环境安装二、安装docker三、部署3.1、安装工具链镜像3.2、配置天工开物OpenExplorer工具包3.3、创建深度学习虚拟空间,安装依赖:3.4、下载yolov5项目源码并运行3.5、pytorch的pt模型文件转onnx3.6、最…...

java LinkedList 怎么保证线程安全

在 Java 中,LinkedList 本身并不是线程安全的。如果需要在多线程环境中使用 LinkedList,可以采取以下几种方法来保证线程安全性: 1. 使用 Collections.synchronizedList Java 提供了一个实用的方法 Collections.synchronizedList 来包装 Li…...

uniapp+vue3开发微信小程序踩坑集

本文主要记录使用uniappvue3开发微信小程序遇见的各种常见问题及注意点。(持续更新) 问题: 自定义组件为什么有些样式加不上去 给自定义组件增加class的时候,有时候不生效有时候生效,一度让我怀疑自己记忆错乱。后来…...

办公软件WPS与Office的区别

临近计算机考试很多同学在纠结我是报wps好?还是ms office好?下面就来详细说说。 1、wps属于国内金山公司的办公软件,里面包含word、Excel和PPT。考试是2021年开始的! 2、MS(Microsoft 微软) office属于美…...

[数据集][目标检测]睡岗检测数据集VOC+YOLO格式3290张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):3316 标注数量(xml文件个数):3316 标注数量(txt文件个数):3316 标注…...

使用Java编写网络爬虫

使用Java编写网络爬虫 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 网络爬虫是一种自动化程序,用于从互联网上获取信息并收集数据。在Java中编写…...

生鲜水果行业wordpress主题

水果蔬菜wordpress外贸自建站模板 水果、脐橙、牛油果、菠萝、凤梨、鲜枣、苹果、芒果、瓜果、百香果wordpress外贸独立站模板。 https://www.jianzhanpress.com/?p3932 生鲜wordpress外贸出口网站模板 水果、蔬菜、肉蛋奶、水产、干货等生鲜产品wordpress外贸出口公司网站…...

3.3V到5V的负电源产生电路(电荷泵电压反相器)SGM3204输出电流0.2A封装SOT23-6

前言 SGM3204 非稳压 200mA 电荷泵负电源产生电路,LCEDA原理图请访问资源 SGM3204电荷泵负电源产生电路 SGM3204电荷泵负电源产生电路 一般描述 SGM3204从 1.4V 至 5.5V 的输入电压范围产生非稳压负输出电压。 该器件通常由 5V 或 3.3V 的预稳压电源轨供电。由于…...

Excel 宏录制与VBA编程 —— 15、MsgBox参数详解

Msgbox参数具体如下 Msgbox参数使用1 Msgbox参数使用2(返回值示例) &ensp ;###### 关注 笔者 - jxd...

Kafka~消息发送过程与ISR机制了解

消息发送过程 使用Kafka发送消息时,一般有两种方式分别是: 同步发送异步发送 同步发送时,可以在发送消息后,通过get方法等待消息结果,这种情况能够准确的拿到消息最终的发送结果,要么是成功、要么是失败…...

multiprocessing.Queue 多个进程生产和多个进程消费怎么处理

在这个示例中,我们创建了一个队列 q,并通过 multiprocessing.Manager().Queue() 来确保队列可以在多个进程之间共享。我们定义了 consumer 和 producer 函数,分别用于从队列中获取数据和向队列中放入数据。 在主进程中,我们创建了…...

配置 Python 解释器及虚拟环境

配置 Python 解释器及虚拟环境 配置 Python 解释器: 1. 打开 PyCharm,进入“File”(文件)菜单,选择“Settings”(设置)。 2. 在弹出的设置窗口中,选择“Project: [项目名称]”下的…...

JeecgBoot中如何对敏感信息进行脱敏处理?

数据脱敏即将一些敏感信息通过加密、格式化等方式处理,展示给用户一个新的或是格式化后的信息,避免了敏感信息的暴露。 一、接口脱敏注解 针对接口数据实现脱敏加密,只加密,一般此方案用于数据加密展示。 1.1 注解介绍 注解作用域…...

【Docker】存储数据卷

目录 1、挂载数据卷到容器里 2、查询挂载文件 3、容器与主机之间映射共享卷 4、三个容器之间使用共享卷 5、卷数据的备份与恢复 5.1 备份 5.2 恢复 1、挂载数据卷到容器里 docker run -itd --name test02 -v /data nginx docker exec -it test02 bashls / docker inspe…...

《昇思25天学习打卡营第12天 | 昇思MindSpore基于MindSpore的GPT2文本摘要》

12天 本节学习了基于MindSpore的GPT2文本摘要。 1.数据集加载与处理 1.1.数据集加载 1.2.数据预处理 2.模型构建 2.1构建GPT2ForSummarization模型 2.2动态学习率 3.模型训练 4.模型推理...

深入解析npm unpublish命令:使用场景与实践指南

npm(Node Package Manager)是JavaScript编程语言的包管理器,广泛用于Node.js应用程序。npm unpublish命令允许用户从npm仓库中撤回(unpublish)一个包的特定版本。本文将详细介绍npm unpublish命令的使用场景、操作步骤…...

有趣的仿神经猫html5圈小猫游戏源码

有趣的仿神经猫html5圈小猫游戏源码,点击小圆点,围住小猫游戏。猫已经跑到地图边缘,你输了。内含json数据,部署到服务器方可运行 微信扫码免费获取源码...

Redis 7.x 系列【10】数据类型之有序集合(ZSet)

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 ZADD2.2 ZCARD2.3 ZSCORE2.4 ZRANGE2.5 ZREVRANGE2.6 ZRANK2.7…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...