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

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. Warum führt der Webserver denn sowas aus?

    Autor: SuperHein123 21.04.15 - 11:51

    Warum interpretiert ein Webserver exif-kommentare als Code und führt ihn dann auch noch ungefragt aus? Mein PC sucht nicht in jeder Ecke nach Code und führt ihn aus. Nur wenn ich es befehle.

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

    Autor: Lala Satalin Deviluke 21.04.15 - 11:58

    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

    Grüße vom Planeten Deviluke!



    1 mal bearbeitet, zuletzt am 21.04.15 11:59 durch Lala Satalin Deviluke.

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

    Autor: smirg0l 21.04.15 - 11:59

    Sehe ich das richtig, dass im genannten Fall der Webserver erlaubt, ausführbare Dateien, z.B. ".sh", ".php", ".aspx" oder ähnliches hochzuladen?
    Dann kann man das doch direkt exploiten, da braucht man kein manipuliertes EXIF im Bild? Oder übersehe ich etwas?

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

    Autor: angrydanielnerd 21.04.15 - 12:02

    Der Header der Datei wird ja laut Artikel überprüft. Die Datei muss also einen JPEG Header vorweisen.

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

    Autor: smirg0l 21.04.15 - 12:04

    Lala Satalin Deviluke schrieb:
    --------------------------------------------------------------------------------
    > 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.

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

    Autor: smirg0l 21.04.15 - 12:06

    angrydanielnerd schrieb:
    --------------------------------------------------------------------------------
    > Der Header der Datei wird ja laut Artikel überprüft. Die Datei muss also
    > einen JPEG Header vorweisen.

    Ah okay, überlesen, danke. Gut, macht es ein bisschen umständlicher. Bleibt die Frage, wieso die Daten des Bildes vom Server als Code interpretiert werden.

    Im Grunde kann man sich das mit dem Header auslesen doch sparen, wenn man die Endung NICHT ignoriert. Der Server interpretiert Dateien auf Basis der Endung, nicht des Headers?



    1 mal bearbeitet, zuletzt am 21.04.15 12:07 durch smirg0l.

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

    Autor: Lala Satalin Deviluke 21.04.15 - 12:07

    Er hat aber das "Bild" über die Browser-URL aufgerufen, da er es als aspx hochgeladen hat (kann man auch mit einer php eben .php).

    Grüße vom Planeten Deviluke!



    1 mal bearbeitet, zuletzt am 21.04.15 12:08 durch Lala Satalin Deviluke.

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

    Autor: smirg0l 21.04.15 - 12:08

    Lala Satalin Deviluke schrieb:
    --------------------------------------------------------------------------------
    > Er hat aber das Bild über die Browser-URL aufgerufen, da er es als aspx
    > hochgeladen hat (kann man auch mit einer php eben .php).

    Ich glaube, ich brauch noch n Kaffee. Macht Sinn, danke. :)

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

    Autor: dabbes 21.04.15 - 12:09

    Die Superprogrammierer des Upload-Skripts haben das halt einfach nicht richtig geprüft.

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

    Autor: Lala Satalin Deviluke 21.04.15 - 12:10

    Ich wohl auch, weil wegen gute Deutsch. :D

    Grüße vom Planeten Deviluke!

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

    Autor: angrydanielnerd 21.04.15 - 12:10

    So wie ich das verstanden habe ich beim Upload die Endung egal, Hauptsache der Header stimmt. Also liegt dort nachher eine .aspx Datei mit JPEG Header. Beim Aufruf wird diese dann durch den Interpreter gejagt und der eiert dann durch die Datei bis er auf den validen Code im Exif Teil kommt und führt den stumpf aus.

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

    Autor: angrydanielnerd 21.04.15 - 12:11

    Offensichtlich ist im der Inhalt der Datei egal, solange irgendwo valider Code steht, ist mir auch unbegreiflich warum da beim Upload nicht auch auf Endung geprüft wird.



    2 mal bearbeitet, zuletzt am 21.04.15 12:14 durch angrydanielnerd.

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

    Autor: Wiggy 21.04.15 - 12:13

    smirg0l schrieb:
    > 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.

    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:

    > http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP

    Aber da ist das Problem lange bekannt, und wenn man sich an vernünftige Guides hält, kann nix passieren. Jetzt hat halt jermand rausgefunden, dass das auch mit dem IIS und ASP funktioniert...

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

    Autor: Lala Satalin Deviluke 21.04.15 - 12:15

    Das ist deswegen so, weil du auch reinen HTML-Code ausgeben willst, ohne jegliche Verarbeitung. Sobald der ASPX-Begin-Tag kommt, wird alles als ASPX-Code ausgeführt bis zum ASPX-End-Tag. Wie bei PHP mit <?php ?>. It's not a bug, it's a feature.

    Die Lücke lässt sich wie folgt mit 2 verschiedenen einfachen Vorkehrungen schließen:

    A: JPEG-Header UND Dateiendung .jpg erwarten!
    B: EXIF-Header direkt nach dem Upload entfernen

    Grüße vom Planeten Deviluke!

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

    Autor: katze_sonne 21.04.15 - 12:18

    Hab ich das jetzt richtig verstanden, dass es gereicht hätte Header *und* Dateiendung auf jpg zu testen? Irgendwie ist der Artikel meiner Meinung nach an dieser Stelle relativ unpräzise formuliert...

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

    Autor: jt (Golem.de) 21.04.15 - 12:18

    Letzteres entfernt aber auch Copyright-Informationen.

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

    Autor: kayozz 21.04.15 - 12:21

    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. http://server.domain/images/test.jpg per Rewrite Rule mappen auf http://server.domain/image.aspx?file=test.jpg



    1 mal bearbeitet, zuletzt am 21.04.15 12:21 durch kayozz.

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

    Autor: moeter 21.04.15 - 12:24

    Und außerdem wäre das auch nicht sauber: man könnte durchaus JPEGs konstruieren, die im payload asp/php code enthalten. Ist nur nicht ganz so einfach. Der bessere Weg wäre, hochgeladene Bilder in einem Verzeichnis abzulegen, dessen Inhalt nicht durch den Interpreter gejagt wird.

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

    Autor: Lala Satalin Deviluke 21.04.15 - 12:24

    In meinem Szenario werden die Dateien sogar in ein Verzeichnis geschoben, in das zwar PHP schreiben darf, aber der Apache nicht. Ausführen ist in dem Verzeichnis auch nicht erlaubt. ;)

    Also Variante E.

    Grüße vom Planeten Deviluke!



    1 mal bearbeitet, zuletzt am 21.04.15 12:27 durch Lala Satalin Deviluke.

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

    Autor: Lala Satalin Deviluke 21.04.15 - 12:24

    Man könnte ja auch die Datei einfach abweisen, wenn ASPX-Code oder PHP-Code gefunden wird.

    Grüße vom Planeten Deviluke!

  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-Systemadminstrator (m/w/d)
    VIVAVIS AG, Bochum, Ettlingen, Koblenz (Home-Office möglich)
  2. Junior PHP Entwickler (m/w/d)
    Sport-Tiedje GmbH, Schleswig
  3. Softwareentwickler (m/w/d) für den Energiemarkt
    PSI Energy Markets GmbH, Aschaffenburg, Berlin, Hannover
  4. SAP ABAP Entwickler (m/w/x)
    über duerenhoff GmbH, Berlin

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. 99,90€ + 5,99€ Versand bei Vorkasse (Vergleichspreis 128,90€)
  2. 63,74€ inkl. Abzug (Vergleichspreis 72,95€)
  3. 108,79€ inkl. Abzug (Vergleichspreis ca. 129€)


Haben wir etwas übersehen?

E-Mail an news@golem.de


Raumfahrt: Braucht es Kernkraft für den Flug zum Mars?
Raumfahrt
Braucht es Kernkraft für den Flug zum Mars?

In den USA werden wieder nukleare Raketentriebwerke für Mars-Reisen entwickelt. Aber wie funktionieren sie und wird Kernkraft dafür überhaupt benötigt?
Von Frank Wunderlich-Pfeiffer

  1. Astronomie Flüssiges Wasser auf dem Mars war wieder ein Irrtum
  2. Raumfahrt Rocketlab baut zwei Marssonden für die Nasa
  3. Raumfahrt Mars-Hubschrauber Ingenuity gerät ins Trudeln

Corona und IT: Arbeiten ganz ohne Geschäftsreisen
Corona und IT
Arbeiten ganz ohne Geschäftsreisen

Für manche in der IT mag er ein Segen sein, für andere ist er projektgefährdend: der coronabedingte Wegfall von Geschäftsreisen.
Ein Erfahrungsbericht von Boris Mayer


    IT-Weiterbildung: Notwendige Modernisierung
    IT-Weiterbildung
    Notwendige Modernisierung

    Nach den IT-Ausbildungsberufen sollen nun die Weiterbildungen reformiert werden. Das ist auch dringend nötig, weil bislang nur wenige ITler sie machen.
    Von Peter Ilg

    1. Branchenwechsel in der IT Zu spezialisiert, um mal was anderes zu machen?
    2. AWS Neues Entwicklungszentrum von Amazon in Dresden
    3. Zertifikatskurse in der IT "Hauptsache, die Bewerbungsmappe ist dick"