1. Foren
  2. Kommentare
  3. Security
  4. Alle Kommentare zum Artikel
  5. › Evil Jpegs: Foto-Upload schleust…
  6. Thema

Warum führt der Webserver denn sowas aus?

Neue Foren im Freiraum! Raumfahrt und freie Software haben jetzt einen Platz, die Games tummeln sich jetzt alle in einem Forum.
  1. Thema
  1. 1
  2. 2
  3. 3

Neues Thema Ansicht wechseln


  1. Re: Warum führt der Webserver denn sowas aus?

    Autor: Lala Satalin Deviluke 21.04.15 - 14:19

    .jpeg würde ich noch mit rein nehmen. Alles andere muss der Uploader umbenennen. öÖ

    Grüße vom Planeten Deviluke!

  2. Re: Warum führt der Webserver denn sowas aus?

    Autor: slashwalker 21.04.15 - 15:11

    kayozz schrieb:
    --------------------------------------------------------------------------------
    > Lala Satalin Deviluke schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > B: EXIF-Header direkt nach dem Upload entfernen
    >
    > Was beim Profilbild ja noch in Ordnung ist, aber in anderen Szenarien kann
    > man nicht einfach die Dateien nach dem Upload verändern. Dafür würde ich
    > ergänzen um Punkt C, D und E
    >
    > C: Dateien in einem Verzeichnis ablegen, in dem keine Ausführung erlaubt
    > ist
    > D: Datei ohne Berechtigung "Ausführen" speichern
    > E: Alternativ: Dateien auserhalb des Webserver-Root speichern und per
    > Script laden (auch wenn das ein gewisser Overhead ist, z.b. server.domain
    > per Rewrite Rule mappen auf server.domain

    Berechtigung "Ausführen" hilft da nicht. PHP Dateien werden nicht ausgeführt, sie werden interpretiert und müssen daher nur lesbar sein.



    1 mal bearbeitet, zuletzt am 21.04.15 15:18 durch slashwalker.

  3. [gelöscht]

    Autor: [gelöscht] 21.04.15 - 17:13

    [gelöscht]



    1 mal bearbeitet, zuletzt am 21.04.15 17:15 durch burzum.

  4. Re: Warum führt der Webserver denn sowas aus?

    Autor: Yash 21.04.15 - 17:34

    Ich bin kein (Web)Entwickler, hab aber viel mit IT Projekten zu tun. Und auch wenn der Fehler der hier beschrieben wird (keine Überprüfung der Dateiendung) mindestens grob fahrlässig ist:
    Wer bezahlt denn Webprojekte, die den Anspruch haben, 100% sicher zu sein (auch wenn das nicht möglich ist)? Meiner Erfahrung nach haben Kunden kaum Interesse an großtmöglicher Sicherheit sondern mehr an günstigen Preisen und guter SEO Performance :-( Wenn die Agenturen mit denen ich arbeite Anfragen bekommen, dann steht da nie "wir möchten ein bestmöglich abgesichertes System" sondern "wieviel kostet eine responsive Internetseite die bei Google weit vorne steht?"



    1 mal bearbeitet, zuletzt am 21.04.15 17:35 durch Yash.

  5. [gelöscht]

    Autor: [gelöscht] 21.04.15 - 18:04

    [gelöscht]



    5 mal bearbeitet, zuletzt am 21.04.15 18:10 durch burzum.

  6. Re: Warum führt der Webserver denn sowas aus?

    Autor: geeky 21.04.15 - 18:31

    Ich persönlich mach es bei Uploadformularen so (speziell bzgl. Bilder):
    - Mime-Type anhand des Dateiheaders erkennen
    - Bestimmte Mimetypes (image/jpeg, ...) sind whitegelistet, bei anderen wird direkt abgebrochen
    - Bild kurz versuchen zu öffnen, damit defekte Bilder erst gar nicht im System landen
    - Dateinamen stark filtern oder gar selbst vergeben (häufig SHA1-Hash der Datei als Dateinamen)
    - Original-Datei-Endung wegwerfen
    - Default-Endung des Mime-Types anhängen

    D.h. lädt man eine "trololo.aspx" mit jpeg-header hoch, wird daraus z.B. eine "7e4413db1ed9b4fe467ad5f920e3f75c30eed4b2.jpg"
    ...und darin enthaltene asp.net-Tags wären egal, weil der IIS *.jpg-Dateien (standardmässig) nicht interpretiert.

    --
    Was mich an dem Artikel irritiert, dass überall "der Webserver" auftaucht, meiner Meinung nach ist das Problem hier doch aber eher der Upload-Code und nicht der Webserver?

  7. Re: Warum führt der Webserver denn sowas aus?

    Autor: xVipeR33 21.04.15 - 20:57

    Wiggy schrieb:
    --------------------------------------------------------------------------------
    > Das machen erstaunlich viele Leute... Beispielsweise viele Betreiber von
    > Webservern, die nginx anstelle von Apache verwenden. Da nginx selbst mit
    > PHP nix anfangen kann, muss er das alles an einen externen PHP-Interpreter
    > weiterleiten, Stichwort "fast_cgi_pass". Oft passiert der Fehler, dass
    > nicht nur PHP-Dateien an den Interpreter weitergeleitet werden, sondern
    > alles, was zu einer bestimmten Domain gehört, und schwupps hast Du das
    > gleiche Problem:
    php-fpm verweigert aber bereits in der Standardkonfiguration die Ausführung jeglicher Dateien, die nicht ".php" als Endung haben.
    Siehe
    https://php.net/manual/en/install.fpm.configuration.php
    > security.limit_extensions
    > Default value: .php

  8. Re: Warum führt der Webserver denn sowas aus?

    Autor: Lala Satalin Deviluke 22.04.15 - 08:31

    xVipeR33 schrieb:
    --------------------------------------------------------------------------------
    > Wiggy schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Das machen erstaunlich viele Leute... Beispielsweise viele Betreiber von
    > > Webservern, die nginx anstelle von Apache verwenden. Da nginx selbst mit
    > > PHP nix anfangen kann, muss er das alles an einen externen
    > PHP-Interpreter
    > > weiterleiten, Stichwort "fast_cgi_pass". Oft passiert der Fehler, dass
    > > nicht nur PHP-Dateien an den Interpreter weitergeleitet werden, sondern
    > > alles, was zu einer bestimmten Domain gehört, und schwupps hast Du das
    > > gleiche Problem:
    > php-fpm verweigert aber bereits in der Standardkonfiguration die Ausführung
    > jeglicher Dateien, die nicht ".php" als Endung haben.
    > Siehe
    > php.net
    > > security.limit_extensions
    > > Default value: .php

    Bitte den Artikel noch einmal lesen. ...

    Grüße vom Planeten Deviluke!



    1 mal bearbeitet, zuletzt am 22.04.15 09:35 durch gs (Golem.de).

  9. Re: Warum führt der Webserver denn sowas aus?

    Autor: Lala Satalin Deviluke 22.04.15 - 08:33

    Es ist trotzdem deutlich mehr Arbeit als die hier im Artikel beschriebene Lücke.

    Grüße vom Planeten Deviluke!

  10. Re: Warum führt der Webserver denn sowas aus?

    Autor: kayozz 22.04.15 - 08:45

    slashwalker schrieb:
    --------------------------------------------------------------------------------
    > Berechtigung "Ausführen" hilft da nicht. PHP Dateien werden nicht
    > ausgeführt, sie werden interpretiert und müssen daher nur lesbar sein.

    Ehrlich gesagt, wie IIS und andere das unter Windows handhaben, weiß ich nicht. Aber: Unter *nix wird ein PHP-Script ohne Execute-Bit auch nicht ausgeführt.

  11. Re: Warum führt der Webserver denn sowas aus?

    Autor: slashwalker 22.04.15 - 09:06

    kayozz schrieb:
    --------------------------------------------------------------------------------
    > slashwalker schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Berechtigung "Ausführen" hilft da nicht. PHP Dateien werden nicht
    > > ausgeführt, sie werden interpretiert und müssen daher nur lesbar sein.
    >
    > Ehrlich gesagt, wie IIS und andere das unter Windows handhaben, weiß ich
    > nicht. Aber: Unter *nix wird ein PHP-Script ohne Execute-Bit auch nicht
    > ausgeführt.
    Aber sicher. Unter CentOS mit FastCGI und Apache Modul probiert.
    Rechte r--r--r-- und das Script läuft. Das ist imho auch logisch, den ausgeführt wird ja der PHP Interpreter unter /usr/bin/php und nicht das Script. Das Script wird vom Interpreter abgearbeitet.

  12. Re: Warum führt der Webserver denn sowas aus?

    Autor: Manga 22.04.15 - 10:46

    kayozz schrieb:
    --------------------------------------------------------------------------------
    > slashwalker schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Berechtigung "Ausführen" hilft da nicht. PHP Dateien werden nicht
    > > ausgeführt, sie werden interpretiert und müssen daher nur lesbar sein.
    >
    > Ehrlich gesagt, wie IIS und andere das unter Windows handhaben, weiß ich
    > nicht. Aber: Unter *nix wird ein PHP-Script ohne Execute-Bit auch nicht
    > ausgeführt.

    Oh klar... jedes php script bekommt ein execute bit... Dir ist schon klar, dass php interpretiert wird und nicht ausgeführt... Genau das gleiche wie java script. Oder vergibst du etwa für jeden JS Script, dass dein Browser herunterlädt vorher ein execute bit, damit die Webseite angezeigt wird?

  13. Re: Warum führt der Webserver denn sowas aus?

    Autor: GodsBoss 22.04.15 - 13:04

    > > Das kannst du genauso gut mit PHP machen: Du kannst dort Datenmüll
    > haben,
    > > wenn aber ein <?php kommt, wird dann interpretiert bis tum ?>.
    > >
    > > Das heißt du kannst eine Datei hochladen:
    > >
    > > dsasfjkhdkjflhaskd fhsdjkfh lasdfkjhk
    > > sadlfhdjksfhasdjkfhsdhdslfjksdhfjklsadhflkjsdh fadfhkl <?php echo "Hello
    > > Hacker!"; ?> ajkf ashkfksdjaf hdlsfjad hlfjsdafhjasdf haslfhdsf
    > > jkasdhfkjlasdhfkjlasdhfklsdf
    > >
    > > Ergebnis:
    > >
    > > dsasfjkhdkjflhaskd fhsdjkfh lasdfkjhk
    > > sadlfhdjksfhasdjkfhsdhdslfjksdhfjklsadhflkjsdh fadfhkl Hello Hacker!
    > ajkf
    > > ashkfksdjaf hdlsfjad hlfjsdafhjasdf haslfhdsf
    > jkasdhfkjlasdhfkjlasdhfklsdf
    >
    > Ja ne, denn dazu muss der Quellcode des Bildes durch den PHP-Interpreter
    > gejagt werden. Wer macht so was? Gut, dass ein Bild per Umweg über eine
    > PHP-Datei ausgeliefert wird, ja, aber auch beim einlesen der Daten des
    > Bildes per fopen oder file_get_contents wird das nicht interpretiert.

    Laut Artikel ist der Weg folgender: Du hast das Bild unter dem Namen "execute.php" hochgeladen, der Server hat es als Datei abgelegt. Auf der Vorschauseite wird einfach auf das Bild verlinkt - wenn nun der Server so konfiguriert ist, dass er in dem Verzeichnis, wo das Bild liegt, PHP-Dateien als PHP ausführt, wird er das tun. Das ist die Lücke.
    Abhilfe schafft, genau das zu unterbinden. Wo User Dateien hinladen können, darf nichts ausgeführt werden.

    Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.

  14. Re: Warum führt der Webserver denn sowas aus?

    Autor: GodsBoss 22.04.15 - 13:09

    > Was mich an dem Artikel irritiert, dass überall "der Webserver" auftaucht,
    > meiner Meinung nach ist das Problem hier doch aber eher der Upload-Code und
    > nicht der Webserver?

    Nun, wenn der Webserver so konfiguriert wäre, dass er dort, wo die Bilder (oder womöglich noch andere User-Dateien) landen, keinen Code-Kram ausführt, wären "böse" Bilder egal.

    Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.

  15. Re: Warum führt der Webserver denn sowas aus?

    Autor: geeky 22.04.15 - 17:28

    Das stimmt schon - Allerdings kann der Webserver ja nicht hellsehen und einfach so wissen, das Ordner "X" nur Bilder enthalten soll und die Standardhandler nicht aktiv werden sollen. Das müsste schon der Anwendungsentwickler entsprechend konfigurieren.

    Edit: Und ob man das entsprechend konfigurieren kann, hängt auch noch vom jeweiligen Hoster ab.



    1 mal bearbeitet, zuletzt am 22.04.15 17:30 durch geeky.

  1. Thema
  1. 1
  2. 2
  3. 3

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. IT-Expertin/IT-Experte (w/m/d) im Referat KM 37 Digitalisierung von Fachverfahren und IT-Unterstützung
    Bundesamt für Sicherheit in der Informationstechnik, Freital bei Dresden
  2. Senior Fullstack Developer (m/w/d)
    CodeCamp:N GmbH, Nürnberg
  3. Berufseinstieg SAP-Berater*in (m/w/d)
    Lufthansa Industry Solutions AS GmbH, Hamburg, Frankfurt, Wetzlar, Köln, Stuttgart
  4. Java Entwickler:in (m/w/d)
    Lufthansa Industry Solutions TS GmbH, Oldenburg

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. 18,49€
  2. Teilnahmeschluss 28.09., 19 Uhr
  3. 17,49€
  4. (u. a. The Walking Dead: The Telltale Definitive Series für 23,99€, Project Wingman für 18...


Haben wir etwas übersehen?

E-Mail an news@golem.de


Halbleiterproduktion: TSMC will klimaneutral werden
Halbleiterproduktion
TSMC will klimaneutral werden

Der Chiphersteller TSMC hat angekündigt, bis 2050 seine Emissionen auf "Netto-Null" zu senken - setzt dabei aber auch auf fragwürdige Kompensationsprojekte.
Von Hanno Böck

  1. Halbleiterfertigung Intel soll mehr 3-nm-Buchungen als Apple haben
  2. Halbleiterfertigung Was TSMC in den nächsten Monaten vorhat
  3. Halbleiterfertigung AMDs Epyc produzieren sich bei TSMC selbst

Allianz-CTO: Die Trennung von Arbeit und Freizeit ist antiquiert
Allianz-CTO
"Die Trennung von Arbeit und Freizeit ist antiquiert"

CTOs im Interview Profi-Trompeter war sein Traum - stattdessen wurde Markus Löffler Sysadmin, Physiker, Direktor von McKinsey und der erste CTO der Allianz Versicherung. Wie schafft man als Quereinsteiger so eine Karriere in der IT?
Ein Interview von Maja Hoock

  1. Jaroslaw Kroczek von Boldare "Gute Bezahlung reicht heute nicht mehr aus"

Deathloop im Test: Und ewig grüßt die Maschinenpistole
Deathloop im Test
Und ewig grüßt die Maschinenpistole

Zeitreise plus Shooter: Das Microsoft-Entwicklerstudio Arkane liefert mit Deathloop ein Spitzenspiel für PS5 und Windows-PC.
Von Peter Steinlechner

  1. PC-Version Entwickler untersuchen massive Ruckler bei Deathloop
  2. Deathloop angespielt "Brich den Loop - sonst bringe ich dich immer brutaler um!"
  3. Deathloop-Vorschau Todesschleife auf der James-Bond-Gedächtnisinsel