JPG Hacks (isch weiss wo Deine Haus wohnt!)

JPG HacksHöret nun die weisen Dinge, die mir von den Erleuchteten des Webs, genannt /b/tards, gelehrt wurden. Die Anwendungsgebiete sind klein, der Effekt jedoch gross. Wo wurde das Photo geschossen? Was kann man in ein Jpeg packen, für Fun und Profit? Lehset weiter…

Was ist drin, im Jpeg?

Ortsangaben

Im Jpeg drin ist ziemlich viel Bild. Daneben aber auch noch Metadaten, normalerweise im Exif-Format. Man findet da so Dinge wie Auflösung, Kameratyp, Datum und Uhrzeit, … ABER: Seit der Inflation von iPhonies und deren Clones immer öfter auch GPS-Ortsangaben. Nicht alle Programme können diese GPS-Exif-Tags darstellen, aber jhead zum Beispiel hat das ganz gut im Griff.

Vorgehen

Nehmen wir mal einen Beitrag im Krusenstern (ich hoffe, sie nehmen mir das nicht übel). Das Jpeg speichern wir ab und lassen es durch jhead laufen:

skaldrom@irkalla:~/tmp$ jhead twitterdinner-in-zurich-mit-iphone.jpg
File name    : twitterdinner-in-zurich-mit-iphone.jpg
File size    : 816846 bytes
File date    : 2009:04:14 00:26:10
Camera make  : Apple
Camera model : iPhone
Date/Time    : 2008:11:24 21:56:53
Resolution   : 1600 x 1200
Aperture     : f/2.8
GPS Latitude : N 47d 22.65m  0s
GPS Longitude: E  8d 31.23m  0s
Comment      : AppleMark

Die GPS-Koordinaten sind ohne Vorzeichen in einem speziellen Format codiert. Der GPS-Konverter beschreibt, wie eine Umrechnung funktioniert (jaaa, viel zu lesen, fast ohne Bildchen). Wir brauchen die Dezimaldarstellung, und da wir weder im Süden noch im Westen sind, brauchen wir die Vorzeichen nicht zu drehen und können die Daten beim Umrechner direkt in das Feld „Degrees/Minutes/Seconds“ schreiben. Resultat: Lat: 47.3775, Long: 8.5205

Wenn diese Daten bei maps.google.ch in der Form 47.377500, 8.520500 eingegeben werden, sieht man sofort eine Karte mit Marker als Resultat. Gut, nicht?

Und nu?

Naja, hmm, gibt man bei myFace und SpaceBook seine genaue Adresse an? Ist es clever, bei Profilbildern direkt zu vermerken, wo man zu Hause ist? Wie ist das mit den irren Kellerkindern, die sich auf dem Netz tummeln? Sollte die Tochter wirklich genau sagen, wo sie zu Hause ist? Take care!

Was kann rein, ins Jpeg?

Beliebige Daten

Steganographie für Dummies: Man kann in jedem Jpeg-Bildchen, seeeeehr einfach Dinge verstecken. Prinzipiell wird am einfachsten ein RAR-Archiv direkt hinter das Bild kopiert. Ein Bildviewer zeigt nun nur das Bild, ein Entpacker packt automatisch die Info aus. Simpel, ne?

Vorgehen unter Windows

Der folgende Film zeigt, wie der /b Switch (Binary) des copy Kommandos zur Kombination genutzt werden kann:

embed-rar-into-jpeg

Vorgehen unter Linux

Ganz einfach:

cat first_iphone.jpg secret.rar > iphonee.jpg

Das Entpacken verläuft analog zu Windows: Umbenennen in iphonee.rar und los.

Beispiel zum Üben:
iphonee

Und nu?

Nun, es könnte ja sein, dass man irgendwann mal irgendwo Dinge hochladen möchte, aber nur Bilder erlaubt sind? Oder dass man etwas einer geschlossenen Benutzergruppe zugänglich machen möchte, ohne dass man deren Mitglieder kennt?

Programmcode

In Exif – und sogar in JPEG selbst – gibt es ein Kommentarfeld (Freitext). Dort drin kann wunderbar Programmcode verstaut werden (PHP bspw.). Nun, der wird natürlich nicht grad so ausgeführt (leider zum Glück). Viele Coder-N00bs produzieren genau zu diesem Zweck LFI’s (Local File Inclusions). Das heisst, dass per Parameter der Name einer lokalen Datei (auf dem Server) angegeben werden kann die dann durch das Script angezeigt wird (require oder include in PHP). Wie könnte man das ausnutzen? Vielleicht hat man die Möglichkeit ein Bild hochzuladen… Der Rest sei dem interessierten Leser zur Imagination überlassen.

7 Gedanken zu “JPG Hacks (isch weiss wo Deine Haus wohnt!)

  1. Also wenn jemand auf meinen Server ein Bild hochlädt, das ich erfolgreich als Bild identifiert habe, kann er trotzdem scheisse damit bauen?

  2. Kommt darauf an. Wie identifizierst Du es als Bild? So richtig hässlich wird es erst, wenn Du ein weiteres Sicherheitsloch hast, dass das Einlesen lokaler Daten erlaubt.

  3. Bisher mache ich es immer via Dateiendung. (Ich weiss das man dann auch ausführbare Dateien hochladen kann, nicht weitersagen ^^“) … Es soll angeblich auch mit dem Überprüfen des Dateiheaders gehen. Hab das aber noch nie probiert 😎
    Wenn da nun im Bild-„Kommentar“ böser Code steht, wird das ja eigentlich keinen Einfluss auf den Dateiheader haben, oder?

  4. Nein, aber wenn man „nur“ ein Bild mit Kommentar und nicht gerade eine JS-Datei hochladen kann, ist es schon etwas besser 🙂 ….

  5. Pingback: LemmingZ.de: Picasa als unbegrenzter Onlinespeicher nicht nur für Bilder?!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.