Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Log4j_Vulnerability_Demo — Log4j 취약점(CVE-2021-44228)이 어떻게 악용될 수 있는지 보여주는 간단한 프로그램 | Kitploit
도구/GitHubGitHub/chandanshastri/log4j_vulnerability_demo
Vulnerability AnalysisExploitationWeb SecurityLearning & EducationLog Analysis
GitHubchandanshastri/log4j_vulnerability_demo

Log4j_Vulnerability_Demo

Log4j 취약점(CVE-2021-44228)이 어떻게 악용될 수 있는지 보여주는 간단한 프로그램

저장소 보기

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
344년 전아직 검토되지 않음
공유

Log4j_Vulnerability_Demo

Log4j 취약점(CVE-2021-44228)이 어떻게 악용될 수 있는지 보여주는 간단한 프로그램입니다.

데모 실행 방법 :

프로그램을 시작하려면 UNIX 시스템에서는 start.sh를, Windows에서는 start.bat를 실행하면 됩니다.

사용자 입력은 Log4j 프레임워크를 사용하여 콘솔에 읽혀지고 기록됩니다.

기본적으로 Log4j 라이브러리에서 생성된 로깅 메시지는 JNDI 치환에 대해 서버 연결 불가 / 호스트를 찾을 수 없음 오류를 제공하지 않습니다. (그리고 이것이 이 취약점이 은밀하게 악용될 수 있는 주요 이유이기도 합니다.)

또한 ${jndi:ldap://test29.google.com/blah} 와 같은 하위 도메인을 사용해 보세요. 때때로 JNDI 호출은 원격 서버의 응답을 기다리며, 그래서 프로그램이 실제로 백그라운드에서 연결 시도를 했음에도 불구하고 멈춘 것처럼 보입니다. 존재하지 않는 하위 도메인을 사용하면 JNDI 호출은 연결 시도 후 빠르게 종료되고 프로그램은 계속 실행됩니다.

한 셸에서 프로그램을 실행하고, 다른 셸에서 "tcpdump -i any | grep google" 명령을 병렬로 실행한 다음 프로그램에 입력을 제공하여 프로그램이 연결 시도를 했는지 확인하는 것을 권장합니다.

Log4j 치환 동작 :

image

원격 연결 시도 :

image

image

몇 가지 샘플 입력 :

testing ( 일반 문자열 )

단순 로그 메시지 이상이 될 수 있는 예시 :

${env:USER} ( UNIX )

${env:USERNAME} ( Windows )

${jndi:ldap://test.java.net}

${jndi:ldap://localhost:12000}

--

모니터링 :

tcpdump -i any | grep -i "java.net"

ncat -k -vv -c "echo hi" -l 12000

--

취약점 완화를 위한 JndiLookup 클래스 제거 :

zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

이 명령은 Log4j 코어 Jar에서 JndiLookup.class를 삭제합니다.

위 단계 후 동일한 프로그램을 실행하면, 프로그램은 어떤 연결 시도 / JNDI 치환도 수행하지 않아야 합니다.

--

JNDI 조회를 비활성화하는 또 다른 방법

export LOG4J_FORMAT_MSG_NO_LOOKUPS=true

이 환경 변수는 현재 세션에서 JNDI 조회를 비활성화합니다.
도구 다운로드