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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Ghostcat-Tomcat-AJP-Exploit-Py3 — 완전히 리팩토링된, Python 3 호환의 Tomcat Ghostcat (CVE-2020-1938 / CNVD-2020-10487) AJP 로컬 파일 포함 익스플로잇 스크립트 | Kitploit
도구/GitHubGitHub/si1ence90/ghostcat-tomcat-ajp-exploit-py3
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration TestingLearning & Education
GitHubsi1ence90/ghostcat-tomcat-ajp-exploit-py3

Ghostcat-Tomcat-AJP-Exploit-Py3

완전히 리팩토링된, Python 3 호환의 Tomcat Ghostcat (CVE-2020-1938 / CNVD-2020-10487) AJP 로컬 파일 포함 익스플로잇 스크립트

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
3개월 전아직 검토되지 않음

Tomcat Ghostcat (CVE-2020-1938 / CNVD-2020-10487) 취약점 탐지 도구

소개

이 프로젝트는 Apache Tomcat AJP 프로토콜의 로컬 파일 포함 취약점(일반적으로 Ghostcat, CVE-2020-1938 / CNVD-2020-10487)을 검증하기 위한 Python 검증 스크립트를 제공합니다.

이 스크립트는 초기에 유포된 Python 2 버전을 기반으로 전면적으로 재구성 및 수정되었으며, Python 3 환경과 완전히 호환되고, StringIO, base64 인코딩 및 바이너리 데이터와 문자열 연결 시의 호환성 문제를 수정하여 최신 운영 체제에서의 안정성을 향상시켰습니다.

취약점 원리

Apache Tomcat이 AJP(Apache JServ Protocol) 프로토콜을 처리할 때 기본적으로 8009 포트를 열고, 들어오는 요청 속성에 대해 엄격한 보안 검사를 수행하지 않습니다. 공격자는 악의적인 AJP 요청을 구성하여 javax.servlet.include.request_uri, javax.servlet.include.path_info, javax.servlet.include.servlet_path 등의 속성을 주입할 수 있습니다:

  1. 임의 파일 읽기 (LFI): Tomcat의 DefaultServlet을 속여 웹 애플리케이션 디렉토리의 임의 파일(예: WEB-INF/web.xml, 설정 파일 등)을 읽습니다.
  2. 원격 코드 실행 (RCE): 대상 서버에 파일 업로드 취약점이 존재하는 경우, 공격자는 먼저 악성 JSP 코드를 포함한 일반 파일(예: txt, png 등)을 업로드한 후, 이 AJP 취약점을 이용하여 JspServlet이 해당 파일을 JSP로 강제로 구문 분석 및 컴파일하도록 하여 원격 명령 실행을 달성합니다.

참고: 이 취약점은 로컬 파일 포함(LFI)만 지원하며, 직접적인 원격 파일 포함(RFI)은 지원하지 않습니다.

환경 요구 사항

  • Python 3.6+
  • Python 표준 라이브러리만 사용하며, 추가로 타사 종속성을 설치할 필요가 없습니다.

사용 방법

명령줄 구문:

root@kitploit:~
python CNVD-2020-10487-Tomcat-Ajp-lfi.py <目标IP> [-p 目标端口] [-f 目标文件路径]

매개변수 설명:

  • target (필수): 대상 호스트의 IP 주소 또는 도메인 이름.
  • -p, --port (선택): AJP 포트, 기본값은 8009.
  • -f, --file (선택): 읽을 대상 파일의 상대 경로, 기본값은 WEB-INF/web.xml.

예제 사용법:

  1. 기본 탐지(기본 web.xml 읽기):

    root@kitploit:~
    python CNVD-2020-10487-Tomcat-Ajp-lfi.py 127.0.0.1
    
  2. 포트 및 파일 지정(사용자 정의 설정 파일 읽기):

    root@kitploit:~
    python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.1.100 -p 8009 -f WEB-INF/classes/application.properties
    

수정 및 방어

시스템이 이 취약점의 영향을 받는 경우, 즉시 다음 보호 조치를 취하는 것이 좋습니다:

  1. Tomcat 업그레이드: 공식적으로 발표된 보안 버전(9.0.31, 8.5.51, 7.0.100 이상)으로 업데이트합니다.
  2. AJP 서비스 비활성화: 비즈니스 환경에서 AJP 프로토콜을 통한 리버스 프록시 클러스터 통신이 필요하지 않은 경우, conf/server.xml에서 <Connector port="8009" protocol="AJP/1.3" ... /> 구성을 직접 주석 처리하거나 삭제하는 것을 권장합니다.
  3. AJP 인증 강화: AJP 서비스를 반드시 활성화해야 하는 경우, AJP Connector에 requiredSecret(Tomcat 8.5.51/9.0.31 이후 버전에서는 secret) 속성을 추가하여 인증을 강제하십시오.

면책 조항

이 스크립트는 사이버 보안 연구, 교육 및 기업 내부 규정 준수를 위한 보안 감사 목적으로만 사용됩니다. 이 스크립트를 승인되지 않은 대상에 대한 불법 탐지 또는 공격에 사용하지 마십시오. 사용자는 이 스크립트를 사용할 때 현지 법률 및 규정을 준수해야 하며, 부적절한 사용 또는 불법 사용으로 인한 모든 결과는 사용자 본인이 부담합니다.

도구 다운로드