DVWA File Inclusion: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 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.
  
Zeile 16: Zeile 17:
 
  <?php
 
  <?php
 
  $file = $_GET[ 'page' ];  
 
  $file = $_GET[ 'page' ];  
*Wird die Variable $file im weiteren Verlauf ohne Kontrolle verwendet, kann es zu dieser Schwachstelle kommen.
+
....
 +
*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=
 
=Gegenmassnahmen=
 
*Kontrolle aller Daten, die von Aussen kommen. Niemals direkte Verwendung dieser Daten / Variablen.
 
*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.