
Una aplicación Java intencionalmente vulnerable a CVE-2021-44228
Este repositorio contiene una aplicación Java intencionadamente vulnerable a CVE-2021-44228, conocida coloquialmente como log4shell.
log4stdin no es, literalmente, nada más que un lector de stdin, cuya entrada se alimenta a una instancia vulnerable de log4j. La compilación log4stdin.jar utiliza los artefactos Maven log4j-api 2.14.1 y log4j-core 2.14.1, y usa un patrón de registro que omite el nivel de registro y los detalles de marca de tiempo. Esta versión es de Vulnerabilidad Garantizada™️.
En la carpeta versions/ se pueden encontrar compilaciones que usan el patrón de registro predeterminado y las versiones de log4j 2.0-beta9 a 2.20.0.
Usa pipes de Unix para la entrada. Por ejemplo, para someter las entradas de registro a un tratamiento de inyectabilidad, ejecuta
cat output.log | java -jar log4stdin.jar
Alternativamente, para la lectura de registros en tiempo real, ejecuta
tail -f output.log | java -jar log4stdin.jar
log4stdin imprime todo lo que se le introduce por stdin, pero no hace nada para gestionar la entrada del usuario. Por lo tanto, es adecuado para leer archivos de registro, como se ejemplifica arriba, o para usarse con software que no requiera interacción del usuario.
Es probable que los antivirus (AV) clasifiquen el contenido de este repositorio como archivos infectados o como intentos de emitir comandos maliciosos. Puede ser una buena idea excluir la carpeta de destino del escaneo del antivirus antes de clonar el repositorio. Puede ser una idea aún mejor probarlo en un entorno virtual sin conexiones de red.
En primer lugar, puede usarse para explorar la consecuencia de tener un punto de inyección JNDI prácticamente en cualquier lugar, sin necesidad de bifurcar (fork) ningún software existente. Puede ser útil para investigar o probar métodos de protección.
En segundo lugar, es básicamente el «Hola Mundo» de la ciberseguridad, escrito para subrayar tanto la simplicidad como la gravedad de la vulnerabilidad.
En tercer lugar, puede usarse para probar si una solución antivirus es capaz de detectar software que explota CVE-2021-44228. Por ejemplo, es posible que log4stdin.java o log4stdin.jar sean marcados como Generic.Zojfor.G.
De todos modos, cualquier uso que decidas darle te hace responsable de las consecuencias.
Licencia MIT. Lee más en LICENSE.md.
Aunque, no es que hubiera mucho trabajo pesado que hacer; siéntete libre de reproducir el asunto por tu propia cuenta, y nadie va a ir a perseguirte.
Copyright 1999–2023 The Apache Software Foundation
Licenciado bajo la Licencia Apache, Versión 2.0 (la "Licencia"); usted no puede usar este archivo excepto en cumplimiento de la Licencia. Usted puede obtener una copia de la Licencia en
http://www.apache.org/licenses/LICENSE-2.0
Salvo que lo exija la ley aplicable o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye "TAL CUAL", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. Consulte la Licencia para ver el lenguaje específico que rige los permisos y limitaciones bajo la Licencia.