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
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". (97,47 kByte) 25.10.2020 14:33 (97,47 kByte) 25.10.2020 14:33

Kontakt

Udo Schmal
Udo Schmal

Udo Schmal
Softwareentwickler
Ellerndiek 26
24837 Schleswig
Schleswig-Holstein
Germany




+49 4621 9785538
+49 1575 0663676
+49 4621 9785539
SMS
WhatsApp

Google Maps Profile
Instagram Profile
vCard 2.1, vCard 3.0, vCard 4.0

Service Infos

CMS Info

Product Name:
UDOs Webserver
Version:
0.5.1.71
Description:
All in one Webserver
Copyright:
Udo Schmal
Compilation:
Tue, 26. Mar 2024 07:33:29

Development Info

Compiler:
Free Pascal FPC 3.3.1
compiled for:
OS:Linux, CPU:x86_64

System Info

OS:
Ubuntu 22.04.4 LTS (Jammy Jellyfish)

Hardware Info

Model:
Hewlett-Packard HP Pavilion dm4 Notebook PC
CPU Name:
Intel(R) Core(TM) i5-2430M CPU @ 2.40GHz
CPU Type:
x86_64, 1 physical CPU(s), 2 Core(s), 4 logical CPU(s),  MHz