Uploaded by Kon Text

Local File Inclusion

advertisement
# Allgemeines #
Abkürzung: LFI
Port: 80
Name: Local File Inclusion
Beschreibung: Local File Inclusion (auch bekannt als LFI) ist der Prozess des Einbindens von Dateien,
die bereits lokal auf dem Server vorhanden sind, durch die Ausnutzung von anfälligen
Einbindungsvorgängen, die in einer Anwendung implementiert sind.
# Kommandos #
`curl 'http://{target_IP}/?file=/etc/passwd` -> Wird verwendet um den Zugriffe auf die Files zu
überprüfen.
`curl 'http://{target_IP}/?file=../../../etc/passwd` -> Wenn wir uns bereits in einem Register befinden.
# Exkurs #
Wenn sich nach dem öffnen einer Webseite die URL verändert und so aussieht:
http://{target_IP}/?file=home.php
dann besteht die Möglichkeit, dass wir auch auf andere Dokumente des Servers zugreifen können
(siehe Kommanndos).
Der PHP-Code könnte folgendermassen aussehen:
if ($_GET['file']) {
include($_GET['file']);
} else {
header("Location: http://$_SERVER[HTTP_HOST]/index.php?file=home.php");
}
Im obigen Beispiel befindet sich der Code innerhalb von index.php, der verwendet wird, um
dynamisch andere Seiten der Website zu laden, indem die Variable "file" als Kontrollpunkt verwendet
wird. Wenn diese Variable nicht in der GET-Anfrage angegeben wurde, schreibt die Seite automatisch
die URL neu und lädt home.php. Wenn der Wert angegeben wurde, versucht der Code, eine Seite aus
dem Wert der Variablen zu laden.
Wenn zum Beispiel die Variable "file=register.php" lautet, würde der PHP-Code versuchen,
register.php aus demselben Ordner zu laden.
Entsprechend können wir auch versuchen mit /etc/passwd auf die Passwd-Datei des Servers
zuzugreifen.
Es kann jedoch auch sein, dass die File-Variable an die Directory gebunden ist, in welcher index.php
liegt (bspw. /var/www/html):
if ($_GET['file']) {
include( __DIR__ . $_GET['file']);
} else {
header("Location: http://$_SERVER[HTTP_HOST]/index.php?file=home.php");
}
Um nun auf /etc/passwd zurückzugreifen, müssen wir zuerst einige ../../ einfügen, damit wir zurück
navigieren. (siehe Kommandos.)
Download