
Ein Proof-of-Concept für CVE-2021-27850, das Apache Tapestry betrifft und zu nicht authentifizierter Remote-Code-Ausführung führt.
CVE-2021-27850 ist eine kritische, nicht authentifizierte Schwachstelle zur Remotecodeausführung, die in allen aktuellen Versionen von Apache Tapestry gefunden wurde. Durch Herunterladen der Datei AppModule.class können wir den HMAC-Geheimschlüssel preisgeben, der verwendet wird, um alle serialisierten Objekte in Apache Tapestry zu signieren.
Wir sind auf diese CVE in einer realen Sicherheitsbewertung gestoßen und soweit ich weiß, gibt es keine öffentlichen Exploits, die zeigen, wie Tapestry die serialisierten Objekte signiert. Daher haben wir beschlossen, den folgenden POC zu veröffentlichen, den wir verwendet haben, nachdem wir lange im Quellcode von Apache Tapestry gewühlt haben x).
1- Klone dieses Repository
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 aus der AppModule.class entnommene HMAC-Schlüssel ist, [Ysoserial Payload] das Payload, das Sie von ysoserial verwenden möchten, und [Command To Execute] der Befehl, den Sie ausführen möchten.

Hinweis: Im Gegensatz zu den üblichen Java-Deserialisierungs-Exploits, bei denen die ausgeführten Befehle eingeschränkt sind (keine Pipes oder Sonderzeichen ..), können Sie hier jeden komplexen Befehl verwenden, den Sie möchten, da wir vor der Ausführung des Befehls Folgendes anhängen sh -c $@|sh . echo .
Referenzen: