it-swarm.com.de

Vermeidet der Browser-View-Source-Modus Scripting-Angriffe?

Angenommen, es gibt eine URL www.badjs.com die nicht vertrauenswürdig ist und möglicherweise fehlerhafte Skripte enthält.

Intuitiv führt eine Ansichtsquelle Navigation zu dieser URL keine Skripte aus, daher sollte sie sicher sein. Es würde mir zumindest erlauben, die Quelle sicher zu inspizieren.

Aber Intuition ist ein schrecklicher Weg, um Schlussfolgerungen zu Sicherheitsfragen zu ziehen. Meine Frage lautet also:

Ist View-Source eine sichere Möglichkeit, eine Website aus der Perspektive der JS-Skriptinjektion zu betrachten?

29
tohster

Ja, es ist absolut sicher (in Google Chrome), eine nicht vertrauenswürdige Website im Modus view-source Zu öffnen. Der wichtigste Punkt, den Sie hier beachten sollten, ist, dass Sie die Seite im view-source - Modus "öffnen" sollten, was bedeutet, dass Sie sollten kein Rendern zulassen, indem Sie normalerweise zuerst die Webseite laden und dann die anzeigen Quelle.

Ein Beispiel in Google Chrome wäre view-source:http://www.badjs.com/

Google Chrome) initiiert standardmäßig eine neue GET-Anforderung an den Server und stellt dem Client-Browser im view-source - Modus die nicht gerenderte Version der Webseite zur Verfügung.

Sie können auch eine No-Script-Erweiterung oder ein Add-On für Ihren speziellen Browser verwenden, um Skriptangriffe zu verhindern.

34
Joseph

Während es derzeit sicher ist auf Chrome sollten Sie Ihre zukünftigen Überprüfungen nicht darauf stützen. Dinge können sich jederzeit ändern und ich Ich habe das Fehlen von Rendering nicht als spezifisch dokumentiertes Merkmal angesehen.

Wenn Sie sich den Code ansehen möchten, ist es viel besser, die Seite über ein Befehlszeilentool (z. B. curl ) herunterzuladen und zu analysieren, was in eine Datei geladen und gespeichert wurde. Dies hat auch den Mehrwert, dass verschiedene Seiten einfach getestet werden können, die möglicherweise als Reaktion auf verschiedene Benutzeragenten bereitgestellt werden.

22
WoJ

Während die anderen Antworten, die besagen, dass sie derzeit sicher sind, nichts auszusetzen haben, gibt es ein potenzielles Missverständnis. Sie sagten, Sie wollten damit überprüfen, ob eine Website sicher ist. Vermutlich laden Sie eine Seite also normal, nachdem Sie beim Anzeigen der Quelle keinen schädlichen Inhalt gefunden haben. Wenn dies zutrifft, müssen Sie sich bewusst sein, dass Websites erkennen (oder zumindest schließen) können, dass Sie view-source: Verwenden. Es verwendet nicht nur, zumindest in Firefox, nicht den Cache, was dazu führt, dass die Seite ein zweites Mal geladen wird, sondern es werden auch keine anderen Ressourcen geladen. Wenn eine Site sieht, dass sich jemand mit einem normalen Browser-Benutzeragenten verbindet, aber keine anderen Ressourcen lädt, kann er daraus schließen, dass der Benutzer die Quelle überprüft. Es ist einfach, diese Erkennung zu automatisieren und nur dann schädliches JavaScript aus einer Ressource bereitzustellen, wenn es zusammen mit dem gesamten Rest der Seite geladen wird. Dies würde seine Anwesenheit vor Ihrer Überprüfung der Quelle verbergen, obwohl die Website Ihnen immer noch bösartiges JavaScript bereitstellt.

Eine mögliche Lösung wäre die Verwendung von Inspect Element, das die aktuell geöffnete Seite betrachtet und das Lesen der Quelle ermöglicht. Dies ist viel schwieriger zu erkennen (obwohl dies nicht unmöglich ist, da CSS die Größe des Browserfensters bestimmen kann, das beim Öffnen des Inspect-Elements um einen bestimmten Betrag kleiner wird). Inspect Element is komplexer und möglicherweise ausnutzbarer als view-source:, Daher müssen Sie in dieser Situation die Bedrohungsmodellierung anwenden.

0
forest