
Aplicación Java vulnerable a la vulnerabilidad CVE-2021-44228 (también conocida como log4shell)
Esta aplicación de demostración es vulnerable a CVE-2021-44228, también conocida como Log4Shell. Por ejemplo, puede utilizarse para validar un script de detección o remediación.
Compila la aplicación:
mvn clean package
O, alternativamente, descarga el JAR precompilado.
Ejecuta la aplicación (en el subdirectorio target si la compilaste localmente):
java -Dlog4shell.all -jar log4shell-honeypot-capsule.jar
La aplicación no es vulnerable por defecto. Debes establecer la propiedad de sistema
log4shell.allpara habilitar las vulnerabilidades (o puedes usar opciones específicas de vulnerabilidad, ver más abajo).
log4shell.userAgent para registrar la cabecera HTTP .User-Agentlog4shell.authorization para registrar la cabecera HTTP Authorization.log4shell.basicAuth para registrar el par usuario/contraseña decodificado de la autenticación básica.log4shell.urlPath para registrar la ruta de la URL.log4shell.urlQuery para registrar la cadena de consulta de la URL.log4shell.all para registrar todo lo anterior.Un valor de propiedad vacío es suficiente.
Para habilitar la autenticación básica en la aplicación, activa el perfil de configuración basicAuth:
java -Dseedstack.profiles=basicAuth -Dlog4shell.all -jar target/log4shell-honeypot-capsule.jar
demodemoCuando la autenticación básica está habilitada, la aplicación no puede ser vulnerable a la inyección de usuario/contraseña.
Haz una solicitud GET o POST en cualquier ruta con una carga maliciosa ubicada de acuerdo con las opciones anteriores:
Ejemplo con la cabecera User-agent:
curl http://localhost:8080 -A "<malicious-user-agent>"
La aplicación emitirá un 302 a /test que contiene la vulnerabilidad.