Warum funktioniert eine Upload Shell?

  • Warum soll der Kunde ein Produkt kaufen, welches von Anfang an schon diveser Sicherheitslücken aufweist?


    Nur mal als Beispiel das Bilder nur auf ihren Mimetype geprüft werden, nicht neu aufgebaut werden und dadurch das Uploaden einer Shell im Picture möglich macht. Ich sehe hier jetzt keinen Grund einen Nachweis zu liefern, jedoch ist dies mehrfach getestet und erfolgreich verlaufen.


    Zudem, wofür zahle ich 89€ ? Nur weil da WoltLab steht oder nur weil man dann ein Puzzle System hat?


    Grüße!

    • Official Post

    Hallo,


    man kann sicherlich eine Upload-Shell getarnt als Bild hochladen, aber als Resultat hat man am Ende eine kaputte Grafik die sich nicht anzeigen lässt und eine Shell die man nicht ausführen kann. PHP-Code wird nicht automatisch vom Server ausgeführt, dazu muss der Dateiname auf .php enden, andernfalls passiert einfach gar nichts. Selbst wenn man die Berechtigung hat, PHP-Dateien als Dateianhang hochzuladen, so wird diese Datei zu keinem Zeitpunkt vom Server ausgeführt und auch der hochladene Nutzer hat keine Möglichkeiten dazu, da die Dateien in einen zufälligen SHA1-Hash umbenannt und ohne Dateiendung abgespeichert werden.


    Das ist im Prinzip so, als ob man Wasser in den Benzintank eines Autos einfüllen würde und dann behauptet, das Auto würde damit fahren. Im Gegenteil, am Ende hat man nur ein Benzintank voller Wasser und das Auto fährt trotzdem nicht.


    Ein Neuaufbauen eines Bildes ist im übrigen eine ziemlich problematische Angelegenheit, da es in der Folge zu Verlusten bedingt durch die Bildkompression (GIF/JPG) sowie zu einer potentiell unvollständigen Verarbeitung von Meta-Daten (u. a. EXIF) kommen kann. Der Grund liegt darin, dass die in PHP standardmäßig verfügbare GD-Bibliothek zur Bearbeitung von Bildern eher in die Kategorie "reicht aus" fällt und somit technischen Limitierungen unterliegt. Und da man keinen Vorteil durch den Neuaufbau hat, unternehmen wir auch keine Schritte in dieser Richtung.


    Ich hoffe damit alle offenen Fragen geklärt zu haben! :)

    Alexander Ebert
    Senior Developer WoltLab® GmbH

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!