bk99.de entertain the web since 1997

Eine Datei ist gleichzeitig JPEG und HTML

Zusammenfassung

Michal Zalewski konstruiert eine Polyglot-Datei, die Bildbetrachter als JPEG und Browser als HTML akzeptieren.

Ideen

  • Dateiformate erkennen Inhalte anhand unterschiedlicher Startpunkte und Regeln.
  • Tolerante Parser ignorieren Daten, die ein anderer Parser interpretiert.
  • Eine Bytefolge kann mehrere formal gültige Strukturen enthalten.
  • Inhaltsprüfung allein anhand einer Dateiendung bleibt unzuverlässig.

Einsichten

  • Parserdifferenzen schaffen Sicherheitsgrenzen mit unerwarteten Lücken.
  • Großzügige Fehlerbehandlung erhöht Kompatibilität und Angriffsfläche zugleich.
  • Validierung muss denselben Parser wie die spätere Verarbeitung verwenden.

Fakten

  • Die Demonstration ist gültiges JPEG und ausführbares HTML.
  • Browser und Bildprogramme interpretieren dieselben Bytes verschieden.
  • Das Projekt stammt von Michal Zalewski.

Empfehlungen

  • Bestimme Dateitypen aus Inhalt und Nutzungskontext.
  • Liefere Uploads mit sicheren Content-Type- und Download-Headern aus.

Referenzen

Originalartikel lesen →