
Lehr-Exploit für CVE-2023-50164 (Apache Struts 2), der Pfad-Traversal und Remote-Code-Ausführung durch bösartigen Datei-Upload demonstriert, entwickelt für HackTheBox-Lab-Umgebungen.
Dieser Exploit wurde speziell für das Strutted-Labor von HackTheBox entwickelt, um die Schwachstelle CVE-2023-50164 in Apache Struts 2 auszunutzen. Der Fehler ermöglicht Path Traversal durch eine fehlerhafte Verarbeitung der Parameter beim Datei-Upload. Der Exploit wurde erstellt, um zu demonstrieren, wie ein Angreifer bösartige Dateien hochladen und Remote Code Execution (RCE) erlangen kann.
Dieser Exploit wurde ausschließlich für Bildungszwecke innerhalb der kontrollierten Umgebung von HackTheBox entwickelt und darf nicht ohne ausdrückliche Genehmigung in realen Systemen eingesetzt werden. Das Ausnutzen von Schwachstellen ohne Zustimmung ist illegal und unethisch.
Ziel dieses Exploits ist es zu demonstrieren, wie der Fehler in Apache Struts 2, insbesondere im Datei-Upload-Endpunkt, ausgenutzt werden kann, um:
Die Schwachstelle CVE-2023-50164 steht im Zusammenhang mit der fehlerhaften Verarbeitung der Parameter beim Datei-Upload, die es einem Angreifer ermöglicht, den Namen der hochgeladenen Datei zu manipulieren, um Path Traversal durchzuführen.
Manipulation des HTTP-Parameters: Der Exploit modifiziert die HTTP-Parameter, um Verzeichnis-Traversal-Zeichen (../) einzufügen und so das Hochladen einer bösartigen Datei in einen nicht autorisierten Ordner zu ermöglichen.
Senden der bösartigen Datei: Der Exploit sendet eine bösartige Datei per POST-Methode an den Endpunkt /upload.action und nutzt dabei die Case-Sensitivity-Schwachstelle der HTTP-Parameter aus.
Remote Code Execution: Der Angreifer kann bösartigen Code einfügen, der nach dem Upload auf dem Server ausgeführt wird.
Nachfolgend ein Beispiel einer HTTP-Anfrage, die zur Ausnutzung der Schwachstelle verwendet werden kann:
POST /upload.action HTTP/1.1
Host: vulnerable-server.com
Content-Type: multipart/form-data; boundary=------------------------abcdef
--------------------------abcdef
Content-Disposition: form-data; name="Upload"; filename="img.png"
Content-Type: application/octet-stream
PNG
--------------------------abcdef
Content-Disposition: form-data;
Content-Type: application/octet-stream
../../shell.jsp
--------------------------abcdef--```