
Sucher für Cross-Site-Leaks (XS-Leaks)
XSLeaker ist ein Tool, das dabei hilft, XS-Leaks auf Websites zu finden. Das Tool vergleicht Ressourcenwerte, für die eine Leak-Technik bekannt ist (z. B. Anzahl der iframes), zwischen verschiedenen Zuständen.
XSLeaker besteht aus zwei Komponenten: einer Chrome-Erweiterung, mit der die Ressourcenwerte in verschiedenen Zuständen erfasst werden, und einem node.js-Server, der zum Vergleich und zur Anzeige der Ergebnisse dient.
Die folgenden Ressourcenwerte werden auf Unterschiede geprüft:
Angenommen, der Benutzer n verschiedene Zustände testen möchte, muss die folgende Einrichtung durchgeführt werden:
Diese Einrichtung muss nur einmal durchgeführt werden, außer wenn der Benutzer mehr als n Zustände testen möchte.
Öffnen Sie n Browserfenster mit verschiedenen Profilen.
Aktivieren Sie die Browser-Erweiterung in jedem Fenster. Dies geschieht über die Schaltfläche „Activate“ im Popup.
Optional: Wählen Sie einen Zustandsnamen (z. B. Admin-Konto). Dies wird empfohlen, da die Zustände in den Ergebnissen dadurch viel leichter zu identifizieren sind.
Richten Sie die verschiedenen Zustände für die zu testende Website ein, einen für jedes Fenster (z. B. Anmeldung als verschiedene Benutzer).
Wählen Sie ein Fenster aus und aktivieren Sie den Master Mode über den Schalter im Popup-Fenster. Die anderen Fenster folgen nun URL-Änderungen des Master-Fensters.
Navigieren Sie im Master-Fenster zu der Website, die getestet werden soll. Jedes andere Fenster navigiert zur gleichen Seite.
Starten Sie den Test mit einem Klick auf die Schaltfläche „Send Results“ im Popup des Master-Fensters.
Navigieren Sie zur Web-Oberfläche (z. B. http://localhost:3000), die von Node.js bereitgestellt wird, um nach Unterschieden zu suchen.
Für den nächsten Test derselben Website muss der Benutzer lediglich mit dem Master-Fenster zur Ziel-URL navigieren und erneut die Schaltfläche „Send Results“ drücken.
Klicken Sie auf das Bild, um XSLeaker in Aktion zu sehen:
Die mit node.js gehostete Web-Oberfläche hat folgende Seiten:
Results: Zeigt die neuesten Testergebnisse
History: Zeigt alle Tests, die in der Vergangenheit durchgeführt wurden. Durch Klicken auf eine Zeile in der Tabelle werden die Ergebnisse des Tests angezeigt.
Automation: Die Seite „Automation“ ermöglicht dem Benutzer, eine Liste von URLs hochzuladen, die getestet werden sollen. Die Schaltfläche „Start Test“ navigiert jedes verbundene Browserfenster nacheinander zu einer URL und führt den Test aus. Die Ergebnisse können im Verlauf eingesehen werden.
Hinweis: Sie müssen zuerst die Zustände einrichten, die Sie in den verschiedenen Fenstern testen möchten.
Derzeit gibt es einen Bug, dass die in der Datenbank gespeicherten Unterschiede nicht immer korrekt sind. Überprüfen Sie die Unterschiede, indem Sie sich die Testergebnisse nach dem automatisierten Test ansehen.
Test: Ein Teststand, mit dem geprüft werden kann, ob XSLeaker ordnungsgemäß funktioniert. Auf http://localhost:3000/tests kann ein Zustand ausgewählt werden. Anschließend können zustandsabhängige Eigenschaften festgelegt werden. Sobald mehrere Browserfenster mit verschiedenen Zuständen geöffnet sind, navigieren Sie mit dem Master-Fenster zur Testseite (http://localhost:3000/tests/testsite) und führen Sie den Test aus.

Das Bild zeigt die Architektur von XSLeaker. Die verschiedenen Browserfenster mit unterschiedlichen Zuständen verbinden sich über WebSockets mit der node.js-Anwendung. Der Server stellt eine Web-Oberfläche bereit, auf der der Benutzer die Testergebnisse einsehen kann (siehe XSLeaker-Webinterface). Der Server speichert die Testergebnisse in einer SQLite-Datenbank.