next up previous contents
Next: Beispiele Up: XSS im Detail Previous: Beispiele   Contents

Ausführen von fremden Skripten

Die Skriptsprache PHP erlaubt mit dem include()-Befehl, ein Skript in ein anderes einzubinden. Dabei wird der Inhalt des zu ladenden Skriptes an die Stelle der include()-Anweisung gesetzt. Viele Programmierer sind sich jedoch nicht bewusst, dass es, je nach Konfiguration des Webservers, auch möglich ist, das Skript von einem externen Webserver zu laden. Dazu wird eine HTTP-Verbindung zum fremden Server aufgebaut und dann das Ergebnis der HTTP GET Anfrage eingefügt.

Ein Angreifer kann damit beliebigen Programmcode einschleusen, der dann auf dem Webserver ausgeführt wird. Dies geschieht mit den Zugriffsrechten des Webservers, was je nach Konfiguration ausreicht, um sich genauer auf dem Server umzusehen oder sich Zugang zum System zu verschaffen. Auch wenn die Zugriffsrechte eingeschränkt sind, kann dieser Zugang benutzt werden, um darauf aufbauende weitere Angriffe zu starten.

Auch vor dieser Art des Cross Site Scripting kann man sich durch eine genaue Überprüfung und Filterung von akzeptablen Werten in den Parametern schützen. In PHP kann man zusätzlich die Konfigurationsoption ``register_globals'' deaktivieren, was ein Überschreiben von Variablen verhindert. Schaltet man den ``Safe-Mode'' ein, ist es auch nicht mehr möglich, andere Skripte per include()-Anweisung von anderen Webservern zu laden.



Subsections
next up previous contents
Next: Beispiele Up: XSS im Detail Previous: Beispiele   Contents
Stephan Uhlmann 2003-09-01