Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ktor-cve-2023-45612-poc — Preuve de concept d'injection XXE dans Ktor (CVE-2023-45612) | Kitploit
Outils/GitHubGitHub/stefan-500/ktor-cve-2023-45612-poc
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebMauvaise ConfigurationApprentissage et Éducation
GitHubstefan-500/ktor-cve-2023-45612-poc

ktor-cve-2023-45612-poc

Preuve de concept d'injection XXE dans Ktor (CVE-2023-45612)

Voir le dépôt
18il y a 10 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

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

Résumé

Impact : Accès arbitraire aux fichiers via une DTD XML malveillante avec une référence XXE.
Cause racine : Analyseur XML non sécurisé.

Ce dépôt contient une application Ktor 2.3.4 vulnérable configurée pour autoriser les entités externes afin que l'effet XXE soit visible.

Description

Application Ktor (v2.3.4) vulnérable pour l'injection d'entités externes XML (CVE-2023-45612) preuve de concept.

CVE-2023-45612 est un bogue XXE (Entité Externe XML) dans le ContentNegotiation de Ktor lorsque XML est activé dans les versions antérieures à 2.3.5.
Cette vulnérabilité correspond à CWE-611: Improper Restriction of XML External Entity Reference.
XXE fait partie de la catégorie de risques OWASP Top 10 A05:2021 - Security Misconfiguration, mais c'est aussi un problème de conception non sécurisé, car la cause est un analyseur XML non restrictif.

Signalé par Ulf Karlsson — voir notes de sécurité Jetbrains.

Composants et versions affectés

Versions de Ktor antérieures à 2.3.5

Environnement de reproduction

Voici ma configuration pour reproduire le problème :

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

Explication du XXE

Les documents XML contiennent facultativement une Définition de Type de Document (DTD), qui, entre autres fonctionnalités, permet de définir des entités XML. Il est possible de définir une entité en fournissant une chaîne de substitution sous forme d'URI. L'analyseur XML peut accéder au contenu de cette URI et l'intégrer dans le document XML pour un traitement ultérieur. En soumettant un fichier XML qui définit une entité externe avec une URI file://, un attaquant peut amener l'application de traitement à lire le contenu d'un fichier local.
Par exemple, une URI telle que "file:///c:/winnt/win.ini" désigne (sous Windows) le fichier C:\Winnt\win.ini, ou file:///etc/passwd désigne le fichier de mots de passe sur les systèmes Unix.
(https://cwe.mitre.org/data/definitions/611.html)

Fonctionnement

Une requête POST est envoyée au point de terminaison http://localhost:8080/xml.
La requête envoie un fichier xml, exploit/payloads/xxe-demo-file.xml, contenant un élément <!DOCTYPE> dans lequel une entité externe est référencée, ici exploit/etc/secret.txt.

Cela pourrait potentiellement être n'importe quel autre fichier du système auquel le processus a accès.

xxe-demo-file.xml

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

L'analyseur XML (configuré pour autoriser les DTD) résout cet élément et récupère les données de la ressource.

La référence externe pourrait également être un chemin vers un point de terminaison SSRF, ou pourrait pointer vers un gros fichier afin d'occuper les ressources du système (DOS).

Étapes de reproduction

  1. Lancez le serveur :
./gradlew run
  1. La sortie doit être :
Responding at http://127.0.0.1:8080
  1. Envoyez la charge utile XXE avec curl :
 curl -i http://localhost:8080/xml -H "Content-Type: application/xml" --data-binary @exploit/payloads/xxe-demo-file.xml

Résultat attendu (vulnérable) :

Sortie console : Received: <external entity data>

Résultat attendu (sécurisé) :

400 Bad Request, ou similaire (L'analyseur XML bloque la Définition de Type de Document)

Preuves

Commande d'exécution :

Run app command

Envoi de la charge utile XXE avec cURL, et résultat affichant le contenu du fichier injecté :

Run app command

Gravité

La gravité est élevée/critique. Récupération potentielle de fichiers locaux, attaque SSRF, attaque DoS, ou autres impacts système.
Score de base NVD : 9.8 CRITICAL (CVSS v3) (https://nvd.nist.gov/vuln/detail/CVE-2023-45612)

Directives de prévention à l'intention des développeurs

  • Configurez l'analyseur XML pour ne pas résoudre les entités externes. Si des entités externes sont nécessaires, implémentez un XmlResolver personnalisé avec un délai d'expiration, une limite de récupération de données, et restreignez les ressources qu'il peut récupérer localement.
  • Utilisez des ressources comme l'OWASP XXE Prevention cheat sheet, qui couvre la mise en œuvre de la prévention XXE, spécifiquement pour diverses technologies.
  • Intégrez SAST dans l'IC, car il peut trouver certaines instances de cette faiblesse en analysant le code source.
  • Suivez et analysez les versions de dépendances et les vulnérabilités.
  • Implémentez des normes de codage sécurisé au niveau de l'entreprise.
  • Mettez l'accent sur l'intégration de la sécurité tout au long du SDLC, en particulier dans les phases de conception et de tests développeurs.

Références

  • 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/
Télécharger l’outil