
Ein Proof of Concept für CVE-2021-27850, eine Schwachstelle in Apache Tapestry, die zu einer nicht authentifizierten Remote-Codeausführung führt.
CVE-2021-27850 ist eine kritische, nicht authentifizierte Schwachstelle zur Remote-Codeausführung, die in allen aktuellen Versionen von Apache Tapestry gefunden wurde. Durch das Herunterladen der AppModule.class-Datei können wir den HMAC-Geheimschlüssel auslesen, der zum Signieren aller serialisierten Objekte in Apache Tapestry verwendet wird.
Wir sind dieser CVE in einem realen Assessment begegnet, und soweit ich weiß, gibt es keine öffentlichen Exploits dazu, wie Tapestry die serialisierten Objekte signiert. Deshalb haben wir beschlossen, den folgenden POC zu veröffentlichen, den wir verwendet haben, nachdem wir lange im Apache-Tapestry-Quellcode gegraben haben x) .
Dank an meinen senpai Fares
1- Klone dieses Repo
2- Führe den folgenden Befehl aus
javac -classpath commons-codec-1.15/commons-codec-1.15.jar:. Exploit.java
3- Führe schließlich Folgendes aus:
java -cp commons-codec-1.15/commons-codec-1.15.jar:. Exploit [Tapestry Key] [Ysoserial Payload] [Command To Execute]
Wobei [Tapestry Key] der Hmac-Schlüssel ist, der aus der AppModule.class-Datei ausgelesen wurde, [Ysoserial Payload] das Payload ist, das du von ysoserial verwenden möchtest, und [Command To Execute] der Befehl, den du ausführen möchtest.

Hinweis: Im Gegensatz zu den üblichen Java-Deserialisierungs-Exploits, bei denen die Befehle, die du ausführen kannst, eingeschränkt sind ( keine Pipes oder Sonderzeichen .. ), kannst du hier jeden beliebigen komplexen Befehl verwenden, da wir vor der Ausführung des Befehls Folgendes anhängen: sh -c $@|sh . echo .
Referenzen: