- Tritt auf, wenn der Client die Möglichkeit hat, Dateien mitzugeben, die der Server einbindet.
Local File Inclusion
- Ausführen einer Datei, die lokal auf dem Server vorliegt.
- z.Bsp. Anpassen der URL: ...?page=../../../../../../etc/passwd (oder auch ...?page=/etc/passwd)
Remote File Inclusion
Ursache
- Verwendung von Variablen die von Außen verändert werden können ohne Kontrolle oder Einschränkung.
- z. Bsp. PHP:
<?php
$file = $_GET[ 'page' ];
....
- Wird die Variable $file im weiteren Verlauf ohne weitere Kontrolle verwendet, kann es zu dieser Schwachstelle kommen.
- Beispiel für eine sichere Kontrolle:
if( $file != "include.php" && $file != "file1.php" && $file != "file2.php" && $file != "file3.php" ) {
echo "ERROR: File not found!";
exit;
}
Gegenmassnahmen
- Kontrolle aller Daten, die von Aussen kommen. Niemals direkte Verwendung dieser Daten / Variablen.