Demonstration im Browser implementierter Skript-Sprachen (javascript, jscript und vbscript)

Ausführen von javascript: -
Ausführen von jscript: -
Ausführen von vbscript: -

Demonstration des Auslesens lokaler Datei-Inhalte per jscript (roter Text erscheint nur, wenn jscript aktiviert ist):

Inhalt


Warum das Ganze ?

Daß in html-Dokumenten (für Weblaien: Webseiten) eingebettete Script-Sprachen gefährlich sein können (I LOVE YOU LETTER und Co.), sollte sich innerhalb der letzten Jahre herumgesprochen haben.

Daß sich fast alle der bekannten Sicherheitslücken auf Microsoft-Umgebungen beziehen, vielleicht auch.

Weniger bekannt ist, daß die Anfälligkeit mit neueren Windows- und Internet-Explorer-Versionen teilweise stark zunimmt.

Alte IE's alleine helfen leider auch nicht, da selbst der IE 4 so heikle Dinge wie JScript und VBScript munter ausführt (den Dateien jscript.dll und vbscript.dll im Windows-System-Verzeichnis sei Dank).

Einem "braven" Windows 95, das einen Windows Scripting Host eigentlich gar nicht kennt, oder Windows 98, bei dem sicherheitsbewußte Anwender den WSH entfernt haben, wird dieses aus Web-Sicht gefährliche Werkzeug von neueren IE-Versionen (5.x und 6.x) ungefragt übergebügelt und wieder aktiviert.

Mit geduldiger Recherche erfährt man, daß derlei Gefahren durch Abschalten von "Active Scripting" in den Internet-Einstellungen des IE gebannt werden können.
Leider hat man dann auch die teilweise hilfreichen Javascript-Funktionalitäten abgeschaltet (z.B. Überprüfung von Formulareingaben vor Absenden der Daten).

Eine getrennte Auflistung der vom IE unterstützten Script-Sprachen und eine einzelne (De-)Aktivierung derselben in dessen Internet-Einstellungen ist selbst in den neueren Versionen nicht in Sicht. Es scheint sinnvoller zu sein, entnervte Benutzer mit einer endlosen Zahl von BugFixes und Security-Patches zu überfordern.

Dieses Dokument sollte eine Möglichkeit beschreiben, dem interessierten Anwender weitgehend unabhängig von Windows- und IE-Browser-Versionen mit geringem Aufwand und ohne Software-Installation das An- und Abschalten einzelner Script-Sprachen zu ermöglichen.

Leider mußte ich feststellen, daß trotz identischer Implementierung der drei benannten Script-Sprachen in der Windows-Registry das im Nachhinein beschriebene Verfahren zwar problemlos unter Windows 95 und 98 funktioniert, aber abhängig von der Browser-Version ist:

Mit anderen Worten: Das Ganze geht nur mit dem IE 4.

Schade !

Zurück zum Anfang dieses Dokumentes.


Die Script-Sprachen javascript, jscript und vbscript:

In Kürze:

Javascript, das eigentlich ECMA-Script sein sollte und in der Netscape Urzeit als LiveScript bekannt gemacht wurde, dient nach meiner Meinung lediglich dazu, den Browser um eine Reihe teilweise sinnvoller Funktionen zu erweitern. Da das Objektmodell dieser Sprache keinen Zugriff auf umgebende Soft- und Hardware kennt, sollte nach Auffassung des Verfassers schlimmerer Mißbrauch weitgehend ausgeschlossen sein.

Die Microsoft-spezifischen Sprachen JScript und VBScript bieten einem html-Dokument in typischer Microsoft-Umgebung (Windows und Internet Explorer) die Möglichkeit, über den Browser selbst hinaus Zugriff auf Bestandteile des Computersystems zu erhalten.
Die bekannten Schädlinge, die "gefährlichen" Script-Code beinhalten, bedienen sich typischerweise dieser beiden Sprachen.

Zurück zum Anfang dieses Dokumentes.


Wo liegt denn nun eigentlich das Problem ?

Einfach gesagt darin, daß diese Sprachen in den bekannten Versionen des Microsoft Internet Explorers unter einer Option der Internet-Einstellung namens "Active Scripting" zusammengefaßt werden und nur gemeinsam ab- bzw. wieder eingeschaltet werden können.

Vom modernsten und verbreitetsten Browser der Welt könnte man erwarten, daß er in seinen Einstellungen preisgibt, welche Script-Sprachen er unterstützt und das (De-)Aktivieren derselben einzeln anbietet.

Und von Microsoft könnte man erwarten, daß in Anbetracht der Verbreitung der JScript- und VBScript-Schädlinge ein Workaround veröffentlicht wird, das es dem Anwender ermöglicht, auf seinem System solche Veränderungen selbst vorzunehmen.

Zurück zum Anfang dieses Dokumentes.


Der Weg zum Ziel (nur mit IE 4):

Ausgehend von der Existenz zweier Dateien namens "jscript.dll" und "vbscript.dll" im Windows-Systemverzeichnis ergaben erste Manipulationen an korrespondierenden Registry-Einträgen ein Ergebnis in der gewünschten Richtung.
Allerdings konnte JScript leider nur zusammen mit Javascript, aber immerhin getrennt von VBScript, abgeschaltet werden.
Eine Manipulation an übergeordneten Schlüsselnamen erbrachte dann endlich das gewünschte Ergebnis.
Die realisierte Lösung erlaubt dem Anwender das einfache Ein- und Ausschalten der im Browser implementierten Script-Sprachen.
Außer einigen manuellen Eingriffen werden keine Downloads und Installationen bemüht.

Zurück zum Anfang dieses Dokumentes.


Wie geht's ?

1. Registry öffnen ("Start/Ausführen", 'regedit' eingeben und bestätigen).
Bitte mit Vorsicht und bitte nur Leute, die eine ungefähre Ahnung davon haben, was man hier alles verbocken kann.
 
2. Innerhalb des sog. Hauptschlüssels "HKEY_CLASSES_ROOT" zu den Unterschlüsseln navigieren, deren Namen mit der Bezeichnung der zu deaktivierenden Script-Sprache beginnen. Beispiel: "JScript" und "JScript.Author".
 
3. Jeweils einen dieser Unterschlüssel markieren und über die Menüoption "Registrierung/Registrierungsdatei exportieren" der Reihe nach sinnvolle Namen vergeben (z.B. "js1" usw.). So erhält man Dateien, die eine Art "Sicherheitskopie" der entsprechenden Schlüssel darstellen.
 
4. Zur Sicherheit erst einmal die erzeugten Dateien im Explorer per rechte Maustaste (Kontextmenü) öffnen und jeweils die Option "Bearbeiten" wählen. Die Inhalte entsprechen in etwa der folgenden Darstellung:

Erste Datei (Beispiel):
REGEDIT4

[HKEY_CLASSES_ROOT\JScript]
@="JScript Language"

[HKEY_CLASSES_ROOT\JScript\OLEScript]

[HKEY_CLASSES_ROOT\JScript\CLSID]
@="{f414c260-6ac0-11cf-b6d1-00aa00bbbb58}"


Zweite Datei (Beispiel):
REGEDIT4

[HKEY_CLASSES_ROOT\JScript Author]
@="JScript Language Authoring"

[HKEY_CLASSES_ROOT\JScript Author\OLEScript]

[HKEY_CLASSES_ROOT\JScript Author\CLSID]
@="{f414c261-6ac0-11cf-b6d1-00aa00bbbb58}"

An dieser Stelle eine weitere Instanz z.B. des Windows-Editors öffnen und den Inhalt der ersten Datei als Kopie einfügen und danach die nach REGEDIT4 stehenden Einträge der zweiten Datei.

Die neue, zusammengebaute Datei sollte jetzt ungefähr so aussehen (Beispiel):
REGEDIT4

[HKEY_CLASSES_ROOT\JScript]
@="JScript Language"

[HKEY_CLASSES_ROOT\JScript\OLEScript]

[HKEY_CLASSES_ROOT\JScript\CLSID]
@="{f414c260-6ac0-11cf-b6d1-00aa00bbbb58}"

[HKEY_CLASSES_ROOT\JScript Author]
@="JScript Language Authoring"

[HKEY_CLASSES_ROOT\JScript Author\OLEScript]

[HKEY_CLASSES_ROOT\JScript Author\CLSID]
@="{f414c261-6ac0-11cf-b6d1-00aa00bbbb58}"

Diese Datei beinhaltet jetzt die Informationen der exportierten Registrierungsdateien und kann in einem geeigneten Verzeichnis unter einem aussagekräftigen Namen wie z.B. "inst_js.reg" gespeichert werden.

Ein Doppelklick auf diese Datei wird die enthaltenen Registry-Informationen jederzeit wieder herstellen.
 

5. Wenn das erfolgreich war, können die betroffenen Registry-Einträge jetzt gelöscht werden.
Wenn danach dieses html-Dokument im Browser erneut geladen wird, kann der (hoffentliche) Erfolg der Operation anhand der Meldungen im obersten Bereich dieser Webseite überprüft werden.

Dieses Verfahren kann identisch auf die Unterschlüssel angewendet werden, deren Namen mit "javascript", "livescript" oder "vbscript" beginnen.
 

6. Um nach einer wieder erfolgten Aktivierung einzelner Script-Sprachen nicht wieder die Registry bemühen zu müssen, kann für jede betroffene Script-Sprache eine sog. inf-Datei erstellt werden. Diese inf-Datei besitzt im Falle jscript folgenden, exemplarischen Aufbau:
[version]
signature="$CHICAGO$"

[DefaultInstall]
DelReg=HauWech

[HauWech]
HKEY_CLASSES_ROOT, "JScript"
HKEY_CLASSES_ROOT, "JScript Author"

Im Bereich [HauWech] werden nur die Namen der Unterschlüssel aufgeführt, die auch manuell gelöscht wurden.
Dieses Beispiel kann in einen Editor geladen und den eigenen Umständen (Kontroll-Blick in die selbst erstellten reg-Dateien) angepaßt werden.
Diese Datei wiederum unter einem aussagekräftigen Namen wie z.B. "del_js.inf" speichern.
Ein Rechtsklick auf diese Datei und Wählen der Menüoption "Installieren" sorgt dafür, daß die Registry-Einträge der betroffenen Script-Sprache wieder entfernt werden.

Wenn die Deaktivierung ebenfalls per Doppelklick erfolgen soll, kann zur weiteren Vereinfachung folgendes versucht werden:

Einen Editor öffnen und folgende Zeile einfügen:

rundll setupx.dll,InstallHinfSection DefaultInstall 0 c:\beispiel-verzeichnis\del_js.inf

Diese Datei kann z.B. als "del_js.bat" gespeichert und dann per Doppelklick bequem im Explorer ausgeführt werden.

Zurück zum Anfang dieses Dokumentes.


Klick' mich an und klick' mich aus ...

Ein Klick auf die Scriptsprachen-bezogenen Ampel-Symbole grün und rot schaltet die jeweilige Sprache an oder aus.

Damit die folgenden Links auf anderen Windows-Systemen keinen Schaden anrichten, können sie online nicht ausgeführt werden.

javascript: JavaScript deaktivieren JavaScript aktivieren
jscript: JScript deaktivieren JScript aktivieren
vbscript: VBScript deaktivieren VBScript aktivieren

Danach die Einstellungen durch die Browser-Funktion "Neu laden" oder diesen Javascript-Link übernehmen.

Zurück zum Anfang dieses Dokumentes.


Download der beschriebenen Dateien

Zurück zum Anfang dieses Dokumentes.

Zurück zur Startseite