JavaScript im GIF

 Kaum zu glauben aber wahr, ein "Hallo Welt" geschrieben in JavaScript in einem GIF.

Offenbar kann man beim src-Attribute des script-Tags auch ein Bild angeben, in diesem Fall ein GIF.

Der Trick an der Sache ist einen gültigen GIF-Header zu erzeugen der auch als JavaScript interprepiert werden kann.
In JavaScript wird die Kennung "GIF89a" als Variable betrachtet und in der Breitendefinition einen Kommentar begonnen "/*" der am Ende der Farbtabelle geschlossen wird "*/" und anschließend wird der Variable (GIF89a) der Wert 1 zugewiesen "=1". Das Ende des Gif-Headers ";" schließt diese Zuweisung ab, nun kann der eigentliche JavaScirpt Code folgen.
Man beachte allerdings die Größendefinition, eine Breite von $2A2F entspricht der Breite von10799 Pixel was nicht nur für ein GIF schon beträchtlich ist!

XSS_Sicherheitsluecke

[GIF Hexdump]

Offset Length (bytes) Content
00 3 ($47 $49 $46) "GIF"
03 3 ($38 $39 $61) "87a" oder "89a"
06 2 ($2f $2a) Breite
08 2 ($64 $2e) Höhe
0a 1 ($2e) Farbtabellen Infos
0b 1 ($2e) Hintergrund Farb-Index
0c 1 ($2e) Pixel Seitenverhältnis
0d 9 ($2c $2e $2e $2e $2e $2a $2f $3d $31) Globale Farbtabelle / Blöcke
16 1 ($3b) Ende
17 document.getElementById("box").innerHTML="Hallo Welt"; JavaScript-Block
4c 1 ($3b) Ende
<div id="box"></div>
<script src="/media/XSS-Sicherheitsluecke.gif" type="text/javascript"></script>

Sicherheitslücke geschlossen:

Skript von "https://www.gocher.me/media/XSS-Sicherheitsluecke.gif" wurde wegen eines unerlaubten MIME-Typs ("image/gif") blockiert.
Laden fehlgeschlagen für das <script> mit der Quelle "https://www.gocher.me/media/XSS-Sicherheitsluecke.gif".

Author: , published: , last modified:

Kontakt

Udo Schmal

Udo Schmal
Softwareentwickler
Olvengraben 41
47608 Geldern
Nordrhein-Westfalen
Germany





+49 2831 9776557
+49 1575 0663676
+49 2831 1328709
SMS
WhatsApp

Instagram Profile
vCard 3.0

Service Infos

CMS Info Product Name:
UDOs Webserver
Version:
0.5.0.101
Description:
All in one Webserver
Copyright:
Udo Schmal
Compilation:
Sun, 18. Jul 2021 17:42:24
Development Info Compiler:
Free Pascal FPC 3.3.1
compiled for:
OS:Linux, CPU:x86_64
System Info OS:
Ubuntu 20.04.2 LTS (Focal Fossa)
Hardware Info Model:
Hewlett-Packard HP Pavilion dv7 Notebook PC
CPU Name:
Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
CPU Type:
x86_64, 1 physical CPU(s), 2 Core(s), 4 logical CPU(s), 1121.995 MHz