Web Application Security in der Praxis, Teil 2

Schutz vor Cross-Site Scripting sowie Local and Remote File Inclusion

Seite: 3/4

Anbieter zum Thema

Local und Remote File Inclusions

File Inclusions sind neben XSS weitere Schwachstellen in Webanwendungen, die es ermöglichen fremde Skripte oder Codes in das eigentliche Skript einzubinden. Sie entstehen durch unsaubere Programmierung. Es kann generell zwischen Local und Remote File Inclusions unterschieden.

  • Local File Inclusions (LFI) ermöglichen dem Angreifer lokal gespeicherte Dateien auf dem Webserver in das eigentliche Skript einzubinden. Für einen Angreifer potentiell interessante Dateien sind unter anderem Konfigurationsdateien, Schadcode oder Dateien die sensible Informationen enthalten.
  • Bei Remote File Inclusions (RFI) werden durch den Angreifer im Gegensatz zu LFI externe Skripte in das eigentliche Skript eingebunden. Dies geschieht zum Beispiel mit Hilfe von Funktionen wie include() oder require(). Im Folgenden ein kurzes Beispiel für ein verwundbares Skript für eine LFI:

Wird über den GET-Parameter Page ein Wert übergeben, so wird dieser eingebunden (http://localhost/index.php?page=user). Ist die Webanwendung verwundbar, so findet an dieser Stelle keine Überprüfung des übergebenen Parameters statt. An dieser Stelle kann nun ein Angreifer jegliche Dateien übergeben (include), wie zum Beispiel die „/etc/passwd“: http://localhost/index.php?page=../../../../../../etc/passwd

Eine Möglichkeit zur Behebung einer solchen LFI wäre die Nutzung einer Whitelist. Hierbei erstellt man ein Array mit den gewollten Seiten. Wird bei der GET-Übergabe des Page-Parameters ein vom Array abweichender String angegeben, so wird dieser durch die main.php ersetzt.

Bei einer RFI wird anstelle einer lokalen Datei eine Datei auf einem fremden Server geladen und durch das Skript ausgeführt. Ein recht oft angewandtes Beispiel ist hierbei eine sogenannte PHP-Shell. Durch dieses PHP-Skript kann der Angreifer unter anderem Shell-Befehle absetzen.

Inhalt

  • Seite 1: Wie kommt es zu XSS-Schwachstellen?
  • Seite 2: Was passiert auf dem Server?
  • Seite 3: Local und Remote File Inclusions
  • Seite 4: Cross Site Request Forgery

(ID:2049815)