任意用户密码重置(五):重置凭证可暴破

本文通过两个实际案例,深入分析了由于短信验证码可被暴力破解而导致的任意用户密码重置漏洞,强调了提高重置凭证的安全性和服务端限制恶意请求的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在逻辑漏洞中,任意用户密码重置最为常见,可能出现在新用户注册页面,也可能是用户登录后重置密码的页面,或者用户忘记密码时的密码找回页面,其中,密码找回功能是重灾区。我把日常渗透过程中遇到的案例作了漏洞成因分析,这次,关注因重置凭证可暴破导致的任意用户密码重置问题。

密码找回需要鉴别用户的合法身份,证明你就是你,通常有两种做法,一是网站将重置验证码发至用户绑定的邮箱或手机号,用户持重置验证码证明你就是你,二是用户输入密码保护问题对应的答案。其中,验证码、密保答案就是重置密码的重要凭证。有些网站生成四位数字的重置验证码,复杂度较低,[0000, 9999] 也就一万种组合,在如今的计算能力和网络带宽条件下,顺手的工具三五分钟的功夫就能枚举完。如果服务端又未设置验证码的存活有效期、未限制高频访问,那么极易暴破。

案例一

密码找回页面 http://www.xxxx.com/find-pw.html 用攻击者账号 13908081024 进入密码找回全流程,输入图片验证码、选择手机找回、获取短信验证码,发现短信验证码为 4 位数字且短信内容上未看到有效期信息,所以,可暴破短信验证码,进行后续的重置流程。

用账号枚举漏洞遍历得到的普通手机号 13908093346 为例,进入密码找回流程,提交短信验证码:


其中,1234 是我随便输入的错误的短信验证码,需要对 code 参数值进行暴破以找出正确的短信验证码。

具体而言,我将该请求中的 code 参数值定义为枚举变量、以 [0000, 9999] 为字典,设定 32 个线程进行暴破:


很快暴出短信验证码为 6909:


提交短信验证码后顺利进入新密码设置页面,重置密码设为 PenTest1024 后提交,服务端返回“修改成功”:


尝试用 13908093346/PenTest1024 登录,验证成功:


案例二

密码找回页面 http://xx.xxxx.com/xxxx/findpassword 用攻击者账号 13908081024 进入密码找回全流程,输入图片验证码、选择手机找回、获取短信验证码,发现短信验证码为 4 位数字且短信内容上未告知有效期,所以,可暴破短信验证码,进行后续的重置流程。

用用户名枚举得到的普通手机号 15012804897 为例,进入密码找回流程,提交短信验证码:


其中,1234 是我随便输入的错误的短信验证码,需要对 auto 参数进行暴破以找出正确的短信验证码:


很快暴出短信验证码为 9997,输入后进入新密码提交页面,重置密码为 PenTest1024 后提交:



尝试用 15012804897/PenTest1024 登录,验证成功:


加固措施

密码重置凭证强度提高,建议六位数字,有效期十分钟,并且验证码应校验一次后立即作废。另外,服务端应限制枚举等恶意请求。


### 如何重置 Zabbix 用户密码 #### 使用默认凭证尝试登录 对于初次安装或刚部署完成的 Zabbix 环境,默认情况下可以使用 `Admin` 账户以及预设密码 `zabbix` 尝试访问 Web 接口[^1]。 如果上述方法无法成功进入系统,则需按照下面介绍的技术手段来恢复管理权限: #### 数据库操作方式重置密码 ##### PostgreSQL 版本 针对采用 PostgreSQL 作为后端数据库的情况,可通过 SQL 命令更新用户表中的密码字段。具体做法是在命令行工具或其他支持的标准客户端执行如下语句: ```sql UPDATE users SET passwd='5fce1b3e34b520afeffb37ce08c7cd66' WHERE userid='1'; ``` 这里 `'5fce1b3e34b520afeffb37ce08c7cd66'` 是字符串 `"passw0rd"` 的 MD5 散列值;当然也可以根据实际需求替换为自己想要设置的新密码并计算其对应的散列形式[^2]。 ##### MySQL/MariaDB 版本 当使用的数据库引擎为MySQL 或 MariaDB时,同样能够利用类似的SQL指令实现相同目的: ```sql UPDATE users SET passwd=MD5('new_password') WHERE userid=1; ``` 请注意将 `'new_password'` 替换成期望设定的具体字符组合,并确保该条目仅影响 ID 为 1 的超级管理员记录[^4]。 #### Oracle 数据库版本 如果是基于Oracle构建的应用实例,则应参照官方文档指导或是联系技术支持团队获取更详细的帮助信息关于如何安全有效地更改认证凭据。 完成以上任意一种途径的操作之后,应当能凭借新的用户名/密码组合正常登陆到Zabbix控制面板内继续开展后续工作了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值