
CVE-2023-50164 Ein Angreifer kann Datei-Upload-Parameter manipulieren, um Pfad-Traversal zu ermöglichen, und unter bestimmten Umständen kann dies zum Hochladen einer schädlichen Datei führen, die zur Ausführung von Remote Code Execution verwendet werden kann. Benutzern wird empfohlen, auf Versionen Struts 2.5.33 oder Struts 6.3.0.2 oder höher zu aktualisieren, um dieses Problem zu beheben.
Eine kritische Sicherheitslücke, identifiziert als CVE-2023-50164 (CVE: 9.8), wurde in Apache Struts gefunden. Sie ermöglicht Angreifern, Datei-Upload-Parameter zu manipulieren, was potenziell zu unbefugtem Pfad-Traversal und Remote-Code-Ausführung (RCE) führen kann.
Eine einfache Testanwendung wurde für die CVE-Analyse entwickelt.
Erstellen Sie zunächst die Anwendung mit dem docker build-Befehl:
docker build -t exploitable -f DOCKERFILE .
Führen Sie dann die Anwendung mit dem docker run-Befehl aus:
docker run -p 8080:8080 exploitable
In diesem Fall erreichen Sie die App auf Port 8080
Sie können es auf Tomcat oder einem anderen Servlet bereitstellen oder mit mvn jetty:run ausführen. In diesem Fall erreichen Sie die App auf Port 9999. Das Exploit-Skript funktioniert nur, wenn die App auf Tomcat bereitgestellt ist, da der Exploit-Pfad darin besteht, ein WAR-Webshell hochzuladen. Viele andere Exploit-Pfade können jedoch bei derselben Schwachstelle funktionieren, abhängig von den verwendeten Technologien und anderen Umständen.
Installieren Sie PIP-Pakete:
pip install requests requests_toolbelt
Dann können Sie den Pfad entsprechend Ihrer Anwendungs-URL ändern und den folgenden Befehl ausführen:
python exploit.py --url http://localhost:8080/upload.action
Es wird empfohlen, die Anwendung und das Exploit auf einem Windows-Host auszuführen. Das Exploit funktioniert manchmal nicht auf *nix-basierten Systemen.
Dieses Exploit-Skript wurde zu Forschungszwecken erstellt. Es ist nicht für böswillige oder unbefugte Aktivitäten bestimmt.