Blog

Entwickler meistern Sicherheit: Share & Learn-Serie – XXE-Injection

August 1, 2019

Der XML External Entity Injection-Angriff, oft einfach als XXE-Injection abgekürzt, ist im Vergleich zu einigen klassischen Schwachstellen, die noch Jahre nach ihrer Entdeckung kursieren, relativ neu. Er ist jedoch in Hacker-Kreisen derzeit extrem beliebt und gewinnt durch seine Erfolge immer weiter an Bedeutung.

Tatsächlich führt OWASP die XXE-Injection mittlerweile als eine der zehn wichtigsten Schwachstellen, auf die Websites achten und gegen die sie sich aktiv verteidigen müssen. Aber keine Sorge: XXE-Injection ist nicht mächtiger als andere Exploits, die bei Cyberangriffen eingesetzt werden. Sie ist lediglich etwas neuer und weniger bekannt. Sie lässt sich verhindern – und sogar vollständig unterbinden.

In dieser Folge erfahren Sie:

  • Wie Angreifer XXE-Injections nutzen
  • Warum XXE-Injection gefährlich ist
  • Techniken zur Vermeidung dieser Schwachstelle.

Wie lösen Angreifer eine XXE-Injection aus?

Die XXE-Injection-Schwachstelle kann auftreten, wenn ein böswilliger Benutzer die Möglichkeit erhält, XML-Code zu übermitteln. Er nutzt diese Fähigkeit, um einen Verweis auf eine externe Entität zu erstellen. Der externe Verweis und der Code sind so konzipiert, dass sie einen XML-Parser mit Standardeinstellungen oder schwach konfigurierten Einstellungen umgehen.

Der Angreifer nutzt die Tatsache aus, dass der XML-Standard das Konzept einer Entität als eine Art Speichereinheit definiert, wobei dieser Speicher extern oder intern sein kann. Bei korrekter Verwendung ermöglicht dies XML-Prozessoren den Zugriff auf Remote-Ressourcen. Meistens nutzen Angreifer diese Fähigkeit jedoch, um die interne Struktur einer Website auszuspähen, einen Denial-of-Service-Angriff durch das Auslösen großer Systemprozesse beim Zugriff auf Remote-Ressourcen zu starten oder sogar Daten von einem lokalen Host auf einen von ihnen kontrollierten Remote-Host zu übertragen – was es zu einer effektiven Technik macht, um wichtige Daten wie Passwörter oder persönliche Informationen aus der XML-Datenbank zu exfiltrieren.

Der eigentliche Code für den Angriff ist oft recht simpel und nutzt lediglich die Entitätsfunktionalität aus. Dies könnte einem Hacker beispielsweise den Zugriff auf die Master-Passwortdatei ermöglichen:

<!ENTITY hackwithxxe SYSTEM file:///etc/password>

Warum ist XXE-Injection gefährlich?

Es gibt einige Gründe, warum XXE-Injection-Angriffe so gefährlich und weit verbreitet sind. Zum einen ist diese Schwachstelle derzeit noch weniger bekannt. Zum anderen sind die Vorteile, die ein Angreifer durch ihre Ausnutzung erzielen kann, beträchtlich. So können hartnäckige Angreifer beispielsweise nach und nach alle Pfade in einem internen Netzwerk abbilden oder sogar Ports scannen. Obwohl dies eine gewisse Zeit in Anspruch nehmen kann, ist die Wahrscheinlichkeit, dass die Aktivitäten eines Hackers durch aktive Abwehrmechanismen im Zielnetzwerk aufgedeckt werden, äußerst gering, da sie lediglich XML-Code an einen Server senden, der von einem vertrauenswürdigen XML-Parser verarbeitet wird.

Sobald das Netzwerk kartiert ist, können Angreifer dieselben XXE-Injection-Techniken nutzen, um beliebige Dateien zu erfassen – entweder durch direkten Datendiebstahl oder durch die Kompromittierung gültiger Benutzeranmeldedaten für Folgeangriffe. Schließlich können Angreifer, die lediglich für Unruhe sorgen wollen, Denial-of-Service-Angriffe auslösen, indem sie die Anwendung anweisen, auf entfernte Ressourcen zuzugreifen, um das System zu überlasten.

Beseitigung der XXE-Injection-Schwachstelle

Aufgrund der raschen Zunahme von XXE-Injection-Angriffen beginnen viele XML-Parser damit, externe Entitäten, manchmal auch DTDs genannt, standardmäßig vollständig zu deaktivieren. In diesen Fällen besteht die Lösung einfach darin, diese Funktionalität nicht zu aktivieren.

Aber selbst bei Parsern, die DTDs zulassen, kann diese Funktionalität deaktiviert werden. Im Allgemeinen ist eine Anweisung wie die folgende erforderlich, um sie vollständig zu blockieren. Überprüfen Sie jedoch die Dokumentation Ihres lokalen Frameworks, um den exakt benötigten Code zu erhalten.

factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);

Gemäß den Sicherheitsprinzipien sollte jegliche Benutzereingabe bereinigt und mithilfe anwendungsweiter Filter validiert werden. Vergessen Sie nicht, GET- und POST-Parameter, HTTP-Header und Cookies einzubeziehen. Sie können auch eine Whitelist für bestimmte DTDs und Befehle erstellen, die der Parser verarbeiten darf, und alles andere untersagen.

Obwohl Whitelisting und Filterung funktionieren, wird aufgrund der steigenden Zahl von XXE-Injection-Angriffen empfohlen, die DTD-Unterstützung vollständig zu deaktivieren, sofern diese Funktionalität nicht benötigt wird.

Weitere Informationen zu XXE-Injections

Für weiterführende Informationen können Sie nachlesen, was OWASP über XXE-Injection-Angriffe sagt. Sie können Ihr neu gewonnenes Verteidigungswissen auch mit der kostenlosen Demo der Secure Code Warrior-Plattform auf die Probe stellen, die Cybersicherheitsteams zu ultimativen Cyber-Warriors ausbildet. Um mehr über die Abwehr dieser Schwachstelle und eine ganze Reihe weiterer Bedrohungen zu erfahren, besuchen Sie den Secure Code Warrior-Blog.

Slogan

Kontrollieren Sie KI-gestützte Entwicklung, bevor sie in Produktion geht

Bewerten Sie KI-gestützte Risiken, setzen Sie Richtlinien für sicheren Code direkt beim Commit durch und beschleunigen Sie die sichere Bereitstellung über Ihren gesamten SDLC hinweg.

Demo buchen
Ressourcenbibliothek

Weitere Blogs entdecken

Erhalten Sie Zugang zu Experteninhalten über sichere Programmierung, KI-Governance und Software-Risikomanagement.

alle anzeigen
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Mehr erfahren
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Mehr erfahren
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Eine Sicherheitskultur: Wie Sage sein Champions-Programm aufgebaut hat

Erfahren Sie, wie Sage die Sicherheit durch einen flexiblen, beziehungsorientierten Ansatz gestärkt, über 200 Security Champions ausgebildet und eine messbare Risikoreduzierung erzielt hat.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Cybersecurity Awareness Month 2026: Das Verständnis von KI-Sicherheit ist entscheidend für die Unternehmensverteidigung

Wir haben einen Punkt erreicht, an dem die meisten führenden KI-Unternehmen öffentlich eine weltweite Verlangsamung der KI-Entwicklung gefordert haben, damit die Sicherheitsvorkehrungen Schritt halten können. Doch die Wahrheit ist: Ernsthafte Sicherheitsprobleme sind bereits Realität geworden. Dies bringt unzählige Sicherheitsverantwortliche und Führungsteams in eine dringliche Lage, da die finanziellen Kosten und Risiken durch die Implementierung von KI stetig steigen.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Enabler 8: Branding für Ihr Programm

Ein Programm für sicheres Programmieren braucht mehr als nur großartige Inhalte, um erfolgreich zu sein. Enabler 8 zeigt, wie Branding die Teilnahme zu einem begehrten, statusorientierten Erlebnis macht.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Jeder Mitarbeiter steht jetzt an vorderster Front der KI-Cybersicherheit

Die Unternehmenslandschaft wandelt sich mit einer Geschwindigkeit, die kaum jemand vorhergesehen hat, bis es zu spät war. Wir haben offiziell die Schwelle von handgeschriebenem Code und einfacher Copilot-Unterstützung hin zur Ära des Agentic Development Lifecycle (ADLC) überschritten. Während autonome KI-Agenten eine beispiellose Effizienz in vielen Bereichen versprechen, bringen sie auch eine völlig neue Klasse von Sicherheits- und Regulierungsrisiken mit sich.

Mehr erfahren

Sichere KI-gestützte Entwicklung vor dem Release

Erkennen Sie Entwicklerrisiken, setzen Sie Richtlinien durch und verhindern Sie Schwachstellen über den gesamten Softwareentwicklungszyklus hinweg.

Demo buchen
Keine Elemente gefunden.