XML External Entities

xml External Entities

Copyright © Shutterstock / Trismegist san

Was ist XML External Entities?

XML External Entities (XXE) ist eine häufig auftauchende Sicherheitsschwachstelle in Webanwendungen. Sie steht regelmäßig in der OWASP Top 10, einer Liste typischer Sicherheitsprobleme von Webanwendungen, die von der Non-Profit-Organisation Open Web Application Security Projects zusammengestellt wird.

Beschreibung

XML External Entities (XXE) ermöglicht es Angreifern, sogenannte externe Entitäten zu missbrauchen, wenn ein XML-Dokument analysiert wird. Die erste Version der Web-Auszeichnungssprache XML wurde 1996 veröffentlicht, zu einer Zeit, als Sicherheit noch nicht so im Fokus stand wie heute. XML-Datenstrukturen enthalten Namen von Feldern und deren Wert. Neben dem Speichern von Zeichenfolgen können auch Links zu anderen Dateien oder Ressourcen enthalten sein.

Hier tritt das Problem auf: Wenn das XML-Dokument analysiert wird, folgt der XML-Parser dem Link und liest das verkn√ľpfte Dokument. Vorausgesetzt, der Angreifer kann die Ausgabe des analysierten XML-Dokuments sehen, gibt ihm das die M√∂glichkeit, lokale Dateien auf dem Server zu lesen. Ein solcher Angriff wird XXE genannt, da er externe Entit√§ten (Links) missbraucht.

Auswirkungen

Der Angreifer kann mittels XML External Entities (XXE) lokale Dateien auf dem Server lesen, den XML-Parser dazu bringen, Netzwerkanfragen innerhalb des lokalen Netzwerks auszuf√ľhren, oder rekursive Verkn√ľpfungen verwenden, um einen Denial of Service-Angriff auszuf√ľhren.

Vermeidung

Der einfachste Weg, um auf diese Sicherheitsanf√§lligkeit hin zu testen, ist das Hochladen eines XML-Dokuments, das versucht, eine lokale Datei zu lesen, und zu pr√ľfen, ob dies erfolgreich ist. Dieser Test reicht aber nicht aus, wenn zus√§tzliche Schutzma√ünahmen vorhanden sind, die umgangen werden k√∂nnen. Wenn XML als einfacher Datenspeicherung genutzt wird, sollte zu einem weniger komplexen Datenformat wie JSON gewechselt werden, um das Risiko einer Anf√§lligkeit f√ľr XML External Entities (XXE) zu vermeiden.
Wenn die Anwendung keine externen Entitäten benötigt, sollte diese Funktion im Parser ganz deaktiviert werden. Wenn die von XML gebotenen Funktionen benötigt werden, ist sicherzustellen, dass alle XML-Parser und Bibliotheken von Drittanbietern, in denen diese Funktionen verwendet werden, aktualisiert sind. Da XXE inzwischen ein bekanntes Problem sind, umfassen spätere Versionen häufig Sicherheitsverbesserungen.

Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte