Proof-of-Concept-Exploit für Apache Struts S2-052 (CVE-2017-9805) XML-Deserialisierung Remote Code Execution. Erstellt beim Lösen des INE eWPTX Practice Range Labs. Enthält benutzerdefinierte Payloads, Reverse-Shell-Exploit-Skript und Schritt-für-Schritt-Ausnutzungsbeispiele.
Dieses Repository demonstriert die Ausnutzung von Apache Struts S2-052 (CVE-2017-9805) mittels bösartiger XML-Deserialisierung.
Der Exploit wurde während der Lösung des INE eWPTX Practice Range – Struts XML Deserialization RCE Lab entwickelt.
Das Apache Struts REST-Plugin verwendet XStream, um XML-Anfragen zu deserialisieren.
Wenn die Anwendung XML mit folgendem Content-Type verarbeitet:
Content-Type: application/xml
Ein Angreifer kann einen bösartigen serialisierten Objektgraphen bereitstellen, der die Ausführung beliebiger Befehle über
java.lang.ProcessBuilder
auslöst. Dies führt zu Remote Command Execution (RCE).
Client-Anfrage ↓ Struts REST-Plugin ↓ XStream XML-Deserialisierung ↓ Böswilliger Objektgraph ↓ ProcessBuilder.start() ↓ Remote-Code-Ausführung
Plattform: INE eWPTX Practice Range
Herausforderung: Struts XML Deserialization RCE
Struts 2.1.6 – 2.3.33 Struts 2.5 – 2.5.12