data: als Protokoll im URL-Verkürzer und XSS per POST-Request

lost+found: Schau mal, wer da schnüffelt, Phantom-Jagd und Link-Phishing” (heise.de)

Der norwegische Forscher Henning Klevjer demonstriert (PDF, http://klevjers.com/papers/phishing.pdf), dass man Dienste wie TinyURL auch als Webhoster für Phishing-Seiten nutzen könnte. Der Trick: Die recht lange data:-URL (http://tinyurl.com/8aj8f94 bzw. http://preview.tinyurl.com/8aj8f94) enthält die komplette Webseite base64-kodiert, ein Browser wie Firefox rendert den Inhalt dann direkt.

(Ausriss mit den ausgeschriebenen URLs ergänzt, damit man sehen kann wohin die Reise geht.)

Firefox, Opera und Safari rendern in URL-Verkürzer gepackte data:-URLs ohne zu murren, nur der Chrome wirft eine Fehlermeldung aus: “Fehler 311 (net::ERR_UNSAFE_REDIRECT): Unbekannter Fehler.”

Das mit dem Phishing halte ich zwar für etwas an den Haaren herbeigezogen, wobei: Wer bei diesen drei URLs deren Unterschied und Bedeutung nicht erkennt, dem ist eh nicht mehr zu helfen und der muss wohl erst einmal schmerzhaft auf die Schnauze fallen:





Noch etwas zum Thema Phishing von Kaspersky:
Nur die Hälfte der Internet-Nutzer erkennt Phishing” (searchsecurity.de)

Gerade einmal jeder zweite Internet-Nutzer erkennt Phishing-Nachrichten oder gefälschte Webseiten. Dies hat eine Umfrage von Kaspersky Lab ergeben. Im Spam-Report für Juli 2012 beleuchtet der Antivirus-Hersteller aktuelle Phishing-Trends.

Kaspersky hat aber die nicht erfassen können, die gar nicht erkannt haben, dass sie ein Phisingopfer geworden sind.


Trotzdem finde ich den Ansatz von Klevjer interessant, mir war nämlich gar nicht klar, dass URL-Verkürzer auch eine URL akzeptieren, die weder mit http:, https: oder ftp: anfangen. Ich hatte dies zwar schon selber einmal versucht, aber immer eine Fehlermeldung zurückbekommen, dass die URL fehlerhaft sei. Zufällig hatte ich wohl tinyurl.com nicht versucht oder das “Feature” gab es damals noch nicht. Nun habe ich noch einmal ca. 200 URL-Verkürzer getestet und neben tinyurl.com nur noch jijr.com, nutshellurl.com und tinyarrows.com gefunden, die als “Protokoll” auch data: akzeptieren.

tinyarrows.com zeigt standardmäßig die Ziel-URL erst 8 Sekunden lang an, bevor die automatische Weiterleitung erfolgt. Diese verzögerte Weiterleitung hat den Nebeneffekt, dass auch der Chrome ohne zu murren die data:-Website rendert.

Im Gegensatz zu Klevjer schätze ich die Möglichkeit einen POST-Request auszuführen als wesentlich gefährlicher ein. Eine XSS-Lücke per GET (also sichtbar in der Adresszeile des Browsers) auszuführen ist auffällig und das Opfer hat die Chance die Manipulation zu erkennen. Wird hingegen POST benutzt, so kann man den Angriff nicht erkennen.

Ein Beispiel:
http://xssed.com/mirror/73647/
Date submitted: 28/07/2011
Date published: 09/12/2011