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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-45046 — CVE-2021-45046 재현 | Kitploit
도구/GitHubGitHub/tejas-nagchandi/cve-2021-45046
Vulnerability AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & Education
GitHubtejas-nagchandi/cve-2021-45046

CVE-2021-45046

CVE-2021-45046 재현

저장소 보기
4년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

tejas-nagchandi/CVE-2021-45046

공격

image

설명

Apache Log4j 2.15.0에서 CVE-2021-44228을 해결하기 위한 수정 사항이 특정 비기본 구성에서 불완전한 것으로 확인되었습니다. 이로 인해 로깅 구성이 컨텍스트 조회(예: $${ctx:loginId}) 또는 스레드 컨텍스트 맵 패턴(%X, %mdc, %MDC)을 사용하는 비기본 Pattern Layout을 사용하는 경우, Thread Context Map(MDC) 입력 데이터를 제어할 수 있는 공격자가 JNDI Lookup 패턴을 사용하여 악성 입력 데이터를 구성함으로써 서비스 거부(DOS) 공격을 초래할 수 있습니다. Log4j 2.15.0은 기본적으로 JNDI LDAP 조회를 localhost로 제한하도록 최선을 다합니다. Log4j 2.16.0은 메시지 조회 패턴에 대한 지원을 제거하고 기본적으로 JNDI 기능을 비활성화하여 이 문제를 해결합니다.

Thread Context란 무엇인가?

Log4j는 Mapped Diagnostic Context(MDC) 개념을 도입했습니다.

Log4j 2는 MDC와 NDC의 개념을 이어받아 이를 단일 Thread Context로 통합했습니다. Thread Context Map은 MDC에 해당하고, Thread Context Stack은 NDC에 해당합니다. 이들은 문제 진단 외의 목적으로도 자주 사용되지만, 이미 이러한 약어로 잘 알려져 있기 때문에 Log4j 2에서도 여전히 MDC 및 NDC로 자주 불립니다.

Fish Tagging

대부분의 실제 시스템은 동시에 여러 클라이언트를 처리해야 합니다. 이러한 시스템의 일반적인 멀티스레드 구현에서는 서로 다른 스레드가 서로 다른 클라이언트를 처리합니다. 로깅은 복잡한 분산 애플리케이션을 추적하고 디버깅하는 데 특히 적합합니다. 한 클라이언트의 로깅 출력을 다른 클라이언트와 구분하는 일반적인 방법은 각 클라이언트에 대해 별도의 새 로거를 생성하는 것입니다. 이는 로거의 수를 늘리고 로깅 관리 오버헤드를 증가시킵니다.

더 가벼운 기법은 동일한 클라이언트 상호작용에서 시작된 각 로그 요청에 고유한 스탬프를 찍는 것입니다. Neil Harrison은 R. Martin, D. Riehle, F. Buschmann이 편집한 Pattern Languages of Program Design 3(Addison-Wesley, 1997)에 수록된 "Patterns for Logging Diagnostic Messages"라는 책에서 이 방법을 설명했습니다. 물고기에 태그를 부착하여 이동을 추적할 수 있는 것처럼, 로그 이벤트에 공통 태그 또는 데이터 요소 집합을 스탬핑하면 트랜잭션이나 요청의 전체 흐름을 추적할 수 있습니다. 우리는 이를 Fish Tagging(물고기 태깅)이라고 부릅니다.

Log4j는 Fish Tagging을 수행하기 위한 두 가지 메커니즘을 제공합니다: Thread Context Map과 Thread Context Stack입니다. Thread Context Map은 키/값 쌍을 사용하여 원하는 수의 항목을 추가하고 식별할 수 있게 해줍니다. Thread Context Stack은 하나 이상의 항목을 Stack에 푸시한 다음 Stack에서의 순서나 데이터 자체로 식별할 수 있게 해줍니다. 키/값 쌍이 더 유연하므로, 요청 처리 중에 데이터 항목이 추가되거나 항목이 두 개 이상인 경우 Thread Context Map이 권장됩니다.

Thread Context Stack을 사용하여 각 요청에 고유한 스탬프를 찍으려면 사용자가 컨텍스트 정보를 Stack에 푸시하면 됩니다.

참고

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046 https://logging.apache.org/log4j/2.x/manual/thread-context.html

도구 다운로드