Blog

Coders Conquer Security: Share & Learn-Reihe – XML-Injections

June 20, 2019
Jaap Karan Singh

XML-Injection-Angriffe sind tückische Exploits, die von Hackern genutzt werden, um Systeme zu kompromittieren, die XML-Datenbanken hosten. Dazu gehören genau die Arten von Systemen, an die man bei herkömmlichen Datenbanken denkt – detaillierte Informationsspeicher für alles Mögliche, von Medikamenten bis hin zu Filmen. Da einige XML-Datenspeicher auch zur Überprüfung autorisierter Benutzer verwendet werden, kann das Einschleusen von neuem XML-Code dazu führen, dass neue Benutzer erstellt werden, die das Host-System ab diesem Zeitpunkt akzeptiert.

Damit ein Angreifer eine XML-Injection durchführen kann, muss eine Anwendung vorhanden sein, die auf eine XML-Datenbank angewiesen ist oder zumindest darauf zugreift. Wann immer dies der Fall ist und Benutzereingaben nicht ordnungsgemäß überprüft werden, kann dem Datenspeicher neuer XML-Code hinzugefügt werden. Je nach Geschick des Angreifers kann das Hinzufügen von neuem XML-Code erheblichen Schaden anrichten oder sogar den Zugriff auf die gesamte Datenbank ermöglichen.

Beim Weiterlesen werden Sie feststellen, dass XML-Injection eng mit den SQL-Injection-Angriffen verwandt ist, die wir bereits behandelt haben. Das liegt daran, dass sie sich zwar gegen unterschiedliche Datenbanktypen richten, aber extrem ähnlich funktionieren. Glücklicherweise sind auch die Lösungen ähnlich. Wenn Sie lernen, wie man eine Angriffsart abwehrt, sind Sie bei der Prävention der anderen bereits einen großen Schritt voraus.

In dieser Folge erfahren Sie:

  • Wie XML-Injections funktionieren
  • Warum sie so gefährlich sind
  • Wie Sie Schutzmaßnahmen ergreifen, um sie vollständig zu stoppen.

Wie lösen Angreifer XML-Injections aus?

XML-Injections sind immer dann erfolgreich, wenn ein unbefugter Benutzer in der Lage ist, XML-Code zu schreiben und in eine bestehende XML-Datenbank einzufügen. Damit dies funktioniert, sind nur zwei Dinge erforderlich: eine Anwendung, die auf eine XML-Datenbank angewiesen ist oder eine Verbindung zu ihr herstellt, und ein ungesicherter Datenpfad, über den der Angreifer seinen Angriff starten kann.

XML-Injections sind fast immer erfolgreich, wenn Benutzereingaben nicht bereinigt oder anderweitig eingeschränkt werden, bevor sie zur Verarbeitung an einen Server gesendet werden. Dies ermöglicht es Angreifern, ihren eigenen Code zu schreiben oder ihn am Ende ihrer normalen Abfragezeichenfolge einzuschleusen. Bei Erfolg wird der Server dazu verleitet, den XML-Code auszuführen, was es ermöglicht, Datensätze hinzuzufügen oder zu löschen oder sogar eine gesamte Datenbank offenzulegen.

Hacker führen einen XML-Injection-Angriff durch, indem sie einer normalen Abfrage XML-Code hinzufügen. Dies kann alles sein, von einem Suchfeld bis hin zu einer Anmeldeseite. Es kann sogar Dinge wie Cookies oder Header umfassen.

In einem Registrierungsformular könnte ein Benutzer beispielsweise den folgenden Code nach dem Benutzernamen- oder Passwortfeld hinzufügen:


<user></user>
<role>administrator</role>
<username>John_Smith</username><password>Jump783!Tango@12</password>

In diesem Beispiel würde ein neuer Benutzer namens John_Smith mit Administratorrechten erstellt werden. Immerhin beachtet der neue Benutzer gute Regeln für die Passwortkomplexität. Schade nur, dass es sich in Wirklichkeit um einen Angreifer handelt.

Hacker müssen nicht unbedingt immer einen solchen Volltreffer landen, um mit XML-Injections erfolgreich zu sein. Durch die Manipulation ihrer Abfragen und die Aufzeichnung der verschiedenen Fehlermeldungen, die der Server zurückgibt, können sie möglicherweise die Struktur der XML-Datenbank abbilden. Diese Informationen können dann genutzt werden, um andere Arten von Angriffen zu verstärken.

Warum sind XML-Injections so gefährlich?

Das Gefahrenpotenzial eines XML-Injection-Angriffs hängt davon ab, welche Informationen in der Ziel-XML-Datenbank gespeichert sind oder wie diese Informationen verwendet werden. Wenn eine XML-Datenbank beispielsweise zur Authentifizierung von Benutzern verwendet wird, kann eine XML-Injection einem Angreifer Zugriff auf das System verschaffen. Es könnte ihm sogar ermöglichen, Administrator im Zielnetzwerk zu werden, was natürlich eine extrem gefährliche Situation darstellt.

Bei XML-Injections gegen herkömmlichere Datenbanken besteht die Gefahr darin, dass Informationen gestohlen, falsche Daten in den Speicher eingefügt oder möglicherweise gute Daten überschrieben werden. XML-Code ist nicht sehr schwer zu erlernen, und einige der Befehle können extrem mächtig sein, da sie ganze Informationsfelder überschreiben oder sogar den Inhalt eines Datenspeichers anzeigen können.

Im Allgemeinen baut niemand eine Datenbank auf, wenn die dort gespeicherten Informationen keinen Wert haben. Hacker wissen das, weshalb sie diese oft ins Visier nehmen. Wenn diese Daten Dinge wie persönliche Informationen über Mitarbeiter oder Kunden enthalten, kann eine Kompromittierung zu Reputationsverlust, finanziellen Folgen, hohen Geldstrafen oder sogar Klagen führen.

XML-Injection-Angriffe stoppen

XML-Injections sind aufgrund ihrer einfachen Umsetzung und der weiten Verbreitung von XML-Datenbanken recht häufig. Da diese Angriffe jedoch schon lange bekannt sind, gibt es bewährte Methoden, um sie zuverlässig zu verhindern.

Eine der besten Methoden zur Abwehr dieser Angriffe ist die Verwendung vorkompilierter XML-Abfragen. Dadurch wird der Funktionsumfang der Abfragen auf eine autorisierte Auswahl beschränkt. Eingaben mit zusätzlichen Argumenten oder Befehlen, die nicht mit den vorkompilierten Funktionen übereinstimmen, werden nicht ausgeführt. Alternativ bietet sich die Parametrisierung an. Hierbei wird die Benutzereingabe auf bestimmte Datentypen, wie etwa Ganzzahlen, begrenzt. Alles, was außerhalb dieser Parameter liegt, gilt als ungültig und führt zum Abbruch der Abfrage.

Es ist zudem ratsam, vorkompilierte oder parametrisierte Abfragen mit angepassten Fehlermeldungen zu kombinieren. Anstatt die standardmäßigen, detaillierten Fehlermeldungen einer fehlgeschlagenen Abfrage auszugeben, sollten Anwendungen diese abfangen und durch allgemeinere Meldungen ersetzen. Idealerweise informieren Sie den Benutzer über das Scheitern der Abfrage, ohne dabei Informationen über die Datenbank preiszugeben. Durch die Beschränkung auf wenige allgemeine Fehlermeldungen verhindern Sie, dass Angreifer aus fehlgeschlagenen Abfragen nützliche Erkenntnisse gewinnen.

XML-Injections waren bei ihrem Aufkommen sehr erfolgreich. Da dies jedoch lange zurückliegt, können wir heute problemlos Abwehrmechanismen implementieren, die nicht mehr zu umgehen sind.

Weitere Informationen zu XML-Injections

Weiterführende Informationen finden Sie im OWASP-Artikel über XML-Injections. Sie können Ihr neu erworbenes Wissen auch mit der kostenlosen Demo der Secure Code Warrior-Plattform testen, die Cybersicherheitsteams zu Experten ausbildet. Um mehr über die Abwehr dieser und vieler 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.