Munscheidstr. 14 in 45886 Gelsenkirchen

Jetzt anrufen 0209 - 8830 6760

XXE – Der XML-External-Entity Angriff erklärt!

M.Sc. Jan Hörnemann

In einem Penetrationstest wird ein System oder eine Anwendung auf viele verschiedene Schwachstellen überprüft. Eine dieser Schwachstellen ist XXE, XML-External-Entity. Wir haben einmal zusammengefasst, was XXE ist und welche Auswirkung diese Schwachstelle haben kann.


Jetzt unser Whitepaper zur Active Directory Härtung kostenfrei herunterladen!

Das Active Directory ist die Achillesferse der IT-Infrastruktur.
Wir geben Ihnen 7 Hinweise, Empfehlungen sowie Tipps zur Härtung des Systems.


Die XXE Schwachstelle

XXE ist eine Injection Schwachstelle und so weit verbreitet, dass dieser Schwachstellen-Typ eine eigene Kategorie in der OWASP Top 10 erhielt. Wie bei vielen anderen Schwachstellen, wie bspw. SQL-Injection oder Cross-Site-Scripting ist auch bei der XML-External-Entity, der ungefilterte Benutzern-Input der Auslöser.

Wie der Name bereits andeutet, befindet sich bei XXE der Benutzer-Input in Form einer XML-Datei. Dieser Dateityp wird sehr häufig für den Austausch zwischen von Daten zwischen Servern genutzt. Der große Vorteil von XML ist, dass es sowohl von Menschen als auch von Computern gut und schnell gelesen werden kann. Bei dem XML-External-Entity-Angriff wird das Dateiformat XML jedoch ausgenutzt, um bspw. geheime Dateien auf einem Server lesen zu können.

Vor allem der XML-Parser wird bei diesem Angriff ausgehebelt. In einem klassischen XML-Dokument gibt es ein Feld in dem „external entity“ bestimmt werden können. Diese machen es möglich, Inhalt aus lokalen oder externen Daten einfügen zu lassen, nachdem der Server diese „external entity“ festgelegt hat. Klassische Parser haben hiermit jedoch häufig ein Problem, da bspw. komprimierte Daten übermittelt werden, auf die der Benutzer keinen Zugriff erhalten sollte.

<?xml  version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
   <!ELEMENT foo ANY >
   <!ENTITY xxe SYSTEM  "file:///etc/passwd" >]>
<foo>&xxe;</foo>

OWASP hat ebenfalls eine Erklärung zu der Schwachstelle XXE veröffentlicht, in der bspw. der o. a. Code gefunden werden kann, der ein System auf eine XXE Schwachstelle untersucht. Der Benutzer „sagt“ dem System in dem Feld <!ENTITY>, dass eine Datei ausgewählt werden soll, die sich in dem Pfad „file:///etc/passwd“ befindet.

Ist der Parser ohne jegliche Sicherheitskonfigurationen ausgestattet, würde er diese Anfrage ohne Probleme ausführen und somit potentiell sensible Informationen zurückgeben.


Erkennen Sie zuverlässig Phishing E-Mails?

Jetzt das AWARE7 Phishing Quiz absolvieren
und das eigene Wissen überprüfen!



Laden Sie jetzt unsere kostenfreie Penetrationstest Checkliste herunter

 

7 Schritte zum umfangreichen Aufbau und Ablauf eines Penetrationstests.

Kostenfrei. Jetzt anfordern


So können XML-External-Entity-Schwachstellen erkannt und verhindert werden

Nachdem wir den Angriff nun etwas besser verstanden haben, möchten wir verstehen, wie man diese Sicherheitslücke schließen und langfristig verhindern kann. Um diese Sicherheitslücke zu schließen, ist es zunächst notwendig, dass diese gefunden wird. Es ist definitiv möglich, diese Schwachstelle manuell zu finden, indem eigene Skripte wie o. a. von OWASP, an den eigenen Server geschickt werden und die Antwort validiert wird.

Jedoch ist diese Variante sehr zeitaufwendig und führt höchstwahrscheinlich nicht zu einem Erfolg. Professionelle Pentester haben Scanner und andere Tools, die Webseiten schnell nach solchen Schwachstellen analysieren können. Zudem ist es ratsam, professionelle Teams dafür zu engagieren, da diese Erfahrungen mit verschiedenen Sicherheitslücken haben und somit bessere Ergebnisse liefern können als ein eigener Mitarbeiter selbst.

Eigentlich ist es sehr, einfach seine Systeme vor XXE Angriffen zu schützen, denn die eigenen XML-Parser können so konfiguriert werden, dass <!ENTITY> nicht akzeptiert und verarbeitet wird. Das Problem hierbei ist, dass in vielen Fällen <!ENTITY> aus einem guten Grund verarbeitet werden. In solchen Fällen sollte die Dokumentation des eigenen XML-Parsers gut durchgearbeitet werden und lediglich Funktionen bereitstellen, die eine Daseinsberechtigung haben.


Hat Ihnen der Beitrag gefallen? Gerne benachrichtigen wir Sie, wenn wir einen neuen Beitrag veröffentlicht haben. Tragen Sie jetzt Ihre E-Mail-Adresse ein. Für Sie entstehen keine Kosten.


Foto des Autors

M.Sc. Jan Hörnemann

Hallo liebe/r Leser/in, mein Name ist Jan Hörnemann. Ich bin TeleTrust Information Security Professional (T.I.S.P.) und beschäftigte mich seit 2016 nahezu tagtäglich mit Themen rund um die Informationssicherheit. Der CeHv10 war meine erste praktische Zertifizierung in dem Bereich. Durch den Abschluss Master of Science in dem Fachbereich Internet-Sicherheit habe ich viele verschiedene Aspekte kennengelernt und versuche diese sowohl in Live Hacking Shows als auch in unserem Blog zu vermitteln. Darüber hinaus bin ich als Informationssicherheitsbeauftragter tätig und vom TÜV für diese Tätigkeit qualifiziert worden (ISB nach ISO 27001)