Safari: URL-Spoofing per Javascript
In Apples Browser Safari lässt sich mit wenig Javascript eine andere URL anzeigen als die tatsächlich angesurfte. So könnten Benutzer unwissentlich auf eine Webseite mit Malware umgeleitet werden.
Mit ein paar Zeilen Javascript können Anwender von Apples Browser Safari getäuscht werden: In der URL-Zeile könnte eine vertrauenswürdige Webseite angezeigt werden, während eigentlich eine nachgebildete Seite mit Malware oder einem Login geladen wird.
Der Machbarkeitsnachweis ist auf der speziell dafür eingerichteten Webseite Deusen.co.uk zu sehen. Mit einem Klick auf OK wird eine weitere Webseite geladen, deren URL auf die Webseite der Publikation Daily Mail weist. Zu sehen ist allerdings nur eine Mitteilung, dass es sich nicht um den Webauftritt der Publikation handelt.
Das Spoofing erledigt nur wenige Zeilen Javascript:
function f()
{
location="http://www.dailymail.co.uk/home/index.html?random="+Math.random();
}
setInterval("f()",10);
Auf die legitime Webseite sollte eigentlich über Location weitergeleitet werden. Die Funktion Math.random() verhindert jedoch das Laden der legitimen Webseite, weil Safari stattdessen die entsprechenden kryptografischen Berechnungen weiterleitet und so das Laden dessen Inhalts verhindert. Die aktuelle URL-Zeile wird über setInterval alle 10 Millisekunden aufgefrischt. Streng genommen, handelt es sich dabei auch um einen DDoS-Angriff auf die vertrauenswürdige Webseite.
Getestet haben wir die Spoofing-Seite unter der aktuellen Version 8.0.6 von Safari auf einem Macbook Air und einem Macbook Pro. Nach einer Weile brach das Skript jedoch ab und leitete auf Daliy Mail weiter. Auf einem iPad mit iOS 8.3 funktionierte das Spoofing ebenfalls, allerdings flackert die Anzeige in der URL-Zeile deutlich, was ebenfalls auf ein Problem hinweisen könnte. In den Einstellungen in Safari lässt sich unter "Erweitert", die Option "Vollständige Webadresse anzeigen" aktivieren. Dann zeigt der Browser in der URL-Zeile die Ergebnisse der Funktion MathRandom an.
In Googles Chrome und Mozillas Firefox funktioniert der Code unter Mac OS X nicht.
Stimmt inhaltlich übrigens immer noch nicht. Der Fehler ist schlichtweg, dass Safari die...
Der Safari ist etwas "übereifrig" mit dem Aktualisieren der Adresszeile. Die anderen...
Hallo golem.de, Hättet ihr im Code nicht eine Fake-Addresse verwenden können? Hier sind...
nope, history.pushState() bzw. history.replaceState geht nur wenn die URL auf die gleiche...