php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Sonstiges > Off-Topic Diskussionen
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Off-Topic Diskussionen Kein Platz für Deine Frage gefunden? Dann bist Du hier genau richtig!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 05-04-2009, 20:21
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard Hochgeladene Bilder auf Hijacking überprüfen?

Hallöchen!

Ich hab "nur" ne ganz kurze technische Frage. Ich weiß zwar nicht ganz genau wie das funktioniert, und habe zu dem Thema auch nicht wirklich seriöse Infos gefunden, aber Grafik-Dateien (z.B. JPEGs), können ja meines Wissens "bösen Code" (JavaScripte etc..) enthalten.

Da ich wie gesagt nicht weiß wie das genau von statten geht, bin ich mir nicht ganz sicher, ob mein Ansatz soetwas zu unterbinden korrekt ist, oder ob totaler Unsinn, oder was auch immer.

Ich hatte mir vorgestellt, die Grafiken entsprechend mit imagecreatefromxyz() einzulesen und mit imagecreatexyz() wieder abzulegen. Meines Erachtens schreibt die GD-Lib die, ich sag mal, "Grafik-Informationen" dann neu, und wenn bei der ganzen Prozedur ein Fehler auftritt, ist das Bild wohl nicht in Ordnung.

Frage jedoch: Fange ich damit alle möglichkeiten ab, oder bringt das vielleicht gar nichts? Oder gibt es vielleicht sinnvollere Ansätze?

Noch kurz zur Erklärung: Es geht um vom Benutzer hochgeladene Bilder, die ja unter umständen auch aus Versehen derartigen Code enthalten können.

Vielen Dank im Voraus schonmal
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #2 (permalink)  
Alt 05-04-2009, 20:25
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Hmm, wenn man die Gefahr nicht kennt, ist es schwer Gegenmaßnahmen zu treffen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 05-04-2009, 21:15
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Im Klartext: Du willst überprüfen, ob die hochgeladene Datei ein Bild ist. Dann nimm getimagesize und gut ist.
Mit Zitat antworten
  #4 (permalink)  
Alt 05-04-2009, 21:18
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von PHP-Desaster
Im Klartext: Du willst überprüfen, ob die hochgeladene Datei ein Bild ist. Dann nimm getimagesize und gut ist.
So kann mans kurz sagen, ja

Gut, erstmal danke für die Antwort. Jedoch: Könnte sich nicht "böser code" (von dem ich wie gesagt nicht weiß wie der funktioniert, vielleicht weißt du mehr?), nicht im Header oderso verstecken, so dass der von getimagesize ggfs. gar nicht bemerkt wird?

Ich will da einfach auf der sicheren Seite sein darum frag ich nochma - ich hoffe ihr sehts mir nach

Grüßli
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #5 (permalink)  
Alt 05-04-2009, 21:26
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Also ziehen wir mal Kurz ne Zwischenbilanz:

Du hast eigentlich gar kein PHP-Problem, sondern müsstest erstmal wissen, wovor du angst hast.

Dir hat jemand erzählt, dass JS-Code sich in Bilddateien verstecken kann. Das ist ja erstmal nichts schlimmes. Jetzt nimmst du aber an, dass dieser Code, wenn du das entsprechende Bild in deine Webseite einbindest, auch vom Browser interpretiert und ausgeführt wird.

Soweit richtig?

Dann frag doch erstmal danach um überhaupt mal ne Bestätigung für deine Vermutung zu haben.

Mir fällt es spontan nämlich erstmal schwer zu glauben, dass der Browser irgendwelchen JS-Code in den Bilder ausführen sollte.

*verschieb* nach OT
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #6 (permalink)  
Alt 05-04-2009, 21:29
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Mehr oder minder, ich meine dies hier:

http://www.gnucitizen.org/blog/backdooring-images/

Ist das einzige was ich zu dem Thema gefunden hab, und ich weiß nicht, inwieweit es noch andere Möglichkeiten gibt.
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #7 (permalink)  
Alt 05-04-2009, 21:31
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Die Frage ist ja viel eher, ob der Browser Code in einem solchen Bild ausführt, obwohl getimagesize das Bild korrekt erkannt und ein vernünftiger Content-Type Header gesetzt ist. Würde ich mal verneinen, da gibt es bestimmt einen Haufen offensichtlicherer XSS- und sonstwas Lücken in deiner Website/Projekt/Whatever.
Mit Zitat antworten
  #8 (permalink)  
Alt 05-04-2009, 21:50
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Okay, ich bedanke mich ganz herzlich.
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #9 (permalink)  
Alt 16-04-2009, 16:09
Click
 Member
Links : Onlinestatus : Click ist offline
Registriert seit: Aug 2006
Beiträge: 228
Click ist zur Zeit noch ein unbeschriebenes Blatt
Click eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von PHP-Desaster
Die Frage ist ja viel eher, ob der Browser Code in einem solchen Bild ausführt, obwohl getimagesize das Bild korrekt erkannt und ein vernünftiger Content-Type Header gesetzt ist. Würde ich mal verneinen, da gibt es bestimmt einen Haufen offensichtlicherer XSS- und sonstwas Lücken in deiner Website/Projekt/Whatever.
Ich glaube ich hab mal von nem Fall gelesen, wo der Internet Explorer dies getan hat. Kann es aber leider nicht mehr an einer Quelle belegen, da ich sie nicht emhr weiß und das suchen bei Google nahc "Internet Explorer Bild Javascript" o.ä. viel zu viel andere Ergebnisse ausspuckt. Aber wahrscheinlich hast du recht, dass es noch mehr als genug andere Sicherheitlücken auf 'ner Website zu stopfen gibt.
__________________
Du kannst jeden Tag wie deinen letzten leben, du musst nur jeden Tag das Gleiche tun.

Denk' mal drüber nach!
Mit Zitat antworten
  #10 (permalink)  
Alt 16-04-2009, 16:34
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Ich meine mich auch zu erinnern, aber werde mir dann gar nicht mehr die mühe machen, danach zu suchen...

Letztendlich ist das ganze damit auch eher eine Sicherheitslücke des Browsers.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #11 (permalink)  
Alt 16-04-2009, 16:42
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ja da war mal was ...

Den IE (6?) konnte man auf eine Bild-URL lenken. Er hat den vom Server angesagten Content-Type ignoriert und selbst versucht, den Dateityp zu ermitteln. Genauer gesagt hat er geprüft, ob es sich um eine Webseite handelt. Das tat er, in dem er nach HTML-Tags gesucht hat. Fand er welche, hat er die Ressource als Webseite gerendert.
Viele Bildformate haben in ihren Headern Platz für Kommentare oder sonstigen Text (ähnlich wie die ID3-Header bei MP3). Dort kann man HTML oder Javascript (mit <script>-Tags) reinschreiben. Der IE hats interpretiert.

Um Bilder auf diesen Exploit zu überprüfen, muss man eigentlich nur alle Header nach HTML-Tags durchsuchen und ggf. mit htmlspecialchars() behandeln.

Geändert von onemorenerd (16-04-2009 um 16:44 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 16-04-2009, 17:16
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

geht sogar noch viel einfacher. erstell eine textdatei mit diesem code:
PHP-Code:
<script type="text/javascript">alert ("Jau");</script> 
speicher die als bla.jpg ab, lies sie per php aus und der ie führt das script aus, selbst mit einem
PHP-Code:
header('Content-Type: image/jpeg'); 
erscheint die alert-box. da gibt es auch noch möglichkeiten, js-code in css zu verstecken. der verd***te ie frißt fast alles.

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #13 (permalink)  
Alt 16-04-2009, 18:37
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Der IE führt den Code in Bildern aus, wenn der Content-Type-Header nicht den Markierungen im Bild entsprechen, also den ersten Bytes, beim Gif zum Beispiel die ersten 6 Bytes GIF87a bzw. GIF89a. Wenn der Server korrekt konfiguriert ist bzw. die Typenerkennung über ein Php-Skript läuft und korrekte Header gesendet werden, führt der IE das JavaScript nicht aus. Mit getimagesize und image_type_to_mime_type ist man damit aber nicht immer auf der sicheren Seite, da das BMP-Format zum Beispiel vom IE mit dem Content-Type image/x-ms-bmp erwartet, genannte Funktion aber image/bmp liefert. Bei heise gab es einen Artikel dazu.
Mit Zitat antworten
  #14 (permalink)  
Alt 16-04-2009, 18:44
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.581
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von PHP-Desaster
Mit getimagesize und image_type_to_mime_type ist man damit aber nicht immer auf der sicheren Seite, da das BMP-Format zum Beispiel vom IE mit dem Content-Type image/x-ms-bmp erwartet, genannte Funktion aber image/bmp liefert.
Schlechtes Beispiel. Wer liefert schon BMP-Dateien aus? Die kann erstens nicht jeder Browser darstellen und zweitens ist das vollkommener Schwachsinn unkomprimierte BMP-Dateien übers Internet zu senden.
Mit Zitat antworten
  #15 (permalink)  
Alt 16-04-2009, 19:17
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Schlechtes Beispiel. Wer liefert schon BMP-Dateien aus? Die kann erstens nicht jeder Browser darstellen und zweitens ist das vollkommener Schwachsinn unkomprimierte BMP-Dateien übers Internet zu senden.
Ob BMPs sinnvoll sind oder nicht, sei dahingestellt. Wer Bilduploads erlaubt, den Dateityp mit getimagesize validiert und die erlaubten Typen nicht auf Standardtypen wie JPEG, PNG und GIF begrenzt, erlaubt durchaus BMPs. Wie das mit den anderen von getimagesize akzeptierten Datentypen und den ermittelten Mimetypes im IE aussieht, kann ich nicht sagen.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:16 Uhr.