imagetype

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • imagetype

    Servus ,

    ich biete für meine User auf der Domain eine Art File Upload an , jedoch ist es mir mal bei einer kontolle Aufgefallen das einer in einer gif Datei dieses drin steht hat. ( leicht abgeändert )

    PHP Code:
    $cp){system($_COOKIE["cmd"]);exit;} phpinfo(); ?> 
    Okay ist ja soweit nicht so arg schlimm , da auf meinen System die Dateien nicht ausgeführt werden.

    Nun aber zu meiner Frage

    ich habe in meiner Index dieses hier stehen:
    PHP Code:
    // Dateien zu Ermitteln
    $punkt strrpos($File'.');
    $laenge strlen($File);
    $endung strtolower(substr($File, -($laenge $punkt 1)));
    $dbuse substr($File0, -($laenge $punkt 1)); 
    und in meiner functions.php
    PHP Code:
    // diese Datei ändungen dürfen laden
    $erlaube_dateityp = array(gif,jpg,mpeg,avi); 
    so jetzt würde ich gerne via exif_imagetyp das so gestallten das Automatisch auch ein Teil des Inhalt kontrolliert wird.
    So das z.b bei
    PHP Code:
    <?php phpinfo(); ?>
    in einer gif Datei -
    direkt der Upload verweigert wird.

    Hat einer eine Idee ? Bekomme es leider nicht hin

    Classics

  • #2
    Den Upload kannst Du nur verweigern, indem Du keine Möglichkeit zum Upload anbietest. Um Dateien zu prüfen, müssen sie auf dem Server sein.
    Die Zeit hat ihre Kinder längst gefressen

    Comment


    • #3
      Re: imagetype

      Original geschrieben von Classics
      und in meiner functions.php
      PHP Code:
      // diese Datei ändungen dürfen laden
      $erlaube_dateityp = array(gif,jpg,mpeg,avi); 
      Und hast du diese Konstanten auch vorher definiert?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Comment


      • #4
        soweit ich mir bewußt bin ja , probiere ich eine andere Datei zu uploaden wie gewollt - blockt er ja dann auch.

        Gibt aber auch doch noch andere möglichkeiten Bilder auf Code Inhalt zu prüfen.

        wie z.b dieses

        PHP Code:
        checkFile($file)
        {
            if (
        $f fopen ($file"rb"))
            {
                
        $line fread ($f4096);
                
                if (
        preg_match ('@<script[^>]*?>.*?</script>@si'$line))
                {
                    
        // Böser Inhalt gefunden
                    
        fclose ($f);
                    unset (
        $line);
                    return 
        false;
                }
                else 
                {
                    
        fclose ($f);
                    unset (
        $line);
                    return 
        true
        nur die frage was am Sichersten ist.

        Classics

        Comment


        • #5
          Vielleicht verstehe ich einfach dein Problem nicht, aber was ist so schlimm wenn sowas in einem GIF drin steht?
          Damit das ausgeführt werden könnte, müsste man das per exec starten, wieso sollte man ein Bild per exec aufrufen?
          Wenn es ausgegeben wird, ist es halt ein kaputtes Gif, auch kein Problem...
          Wo siehst du da ein Loch in deiner Security?

          Den oben demonstrierten Test halte ich für ziemlich sinnlos

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Comment


          • #6
            @ghostgambler

            ganz einfach weil jemand auch ein ganzen Shell Code oder gleichen Uploaden kann und er z.b

            datei?Dir=meinhoste.de/meine fake Bild pla pla

            das ganze als Shell ausführen kann und das würde ich gerne Hauptsächlich unterbinden.


            Classics

            Comment


            • #7
              Original geschrieben von Classics
              und er z.b
              datei?Dir=meinhoste.de/meine fake Bild pla pla
              das ganze als Shell ausführen kann
              Bitte was?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Comment


              • #8
                hi,

                hmm ... also erstmal ... exif ist meines wissens nach in gif dateien nicht existent ^^

                jedoch gibt es andere möglichkeiten - welche verrate ich hier nicht - jedoch arbeite ich gerade an einer klasse die genau dazu dient kommentare - code oder ähnliches aus bildern zu filtern - fuer jpg habe ich das auch bereits fertig ^^


                also ... aber shell access bekommst du nur in verbindung mit anderen sicherheitslücken ...

                bis dahin mal


                greetz subabrain!

                Comment


                • #9
                  Hallo ,

                  mir ist ganz klar das ich Shell Access anders bekomme und ich dazu auch erste eine andere Lücke finden muss.
                  Aber es gibt genügend File Inlcusionen wo das ganze funzt.

                  Wenn ich z.b bei ImageShack probiere eine Shell als gif zu laden , wird das ganze direkt geblockt.

                  Mir geht es einfach dadrum das ich das ganze gerne Unterbinden würde.

                  Mein Demo was ich hier beschrieben habe funktioniert wirklich und in den Server logs steht denn auch meine URL/FILE/DATEI

                  und das ist wohl nicht sehr gut.

                  Wäre also für Hilfe immer noch Dankbar

                  Classics
                  Last edited by Classics; 07-07-2006, 19:17.

                  Comment


                  • #10
                    Hallo,

                    ja ich bin da immer noch drann ... jedoch wird es noch ein wenig dauern -> da ich gerade n bisl was um die Ohren habe ... ^^

                    aber ... im prinzip muss es so laufen:

                    schau dir die Spezifikationen der einzelnen Bildformate an ->
                    schau welche Blöcke/Segmente notwendig sind und welche nicht.

                    dann machst du ein script welches die Datei so zurückgibt, dass nur die Blöcke erhalten bleiben welche notwendig sind -> dies geht beim jpeg/jfif recht einfach.

                    beim gif hingegen ist es schwerer, hier ist es theoretisch möglich code an jede stelle im bild zu pflanzen ^^

                    und die pflichtblöcke sind hier auch etwas unklar -> daher braucht man hier ein etwas ausgeklügelteres system ^^

                    aber theoretisch wäre es auch möglich bei gif nur in den application extension block und in den comment block code zu schreiben -> hierbei rede ich von GIF89a - da GIF87a dies nicht besitzt.

                    wie gesagt theoretisch - praktisch ist die interpretation eine andere

                    ich hoffe ich konnte etwas helfen -> den genauen weg kann ich leider ned beschreiben -> da sonst keiner mehr meine klasse will


                    gruß
                    Robert

                    Comment

                    Working...
                    X