Wie ein Twitter-Worm funktioniert [CSRF]

CRSF Twitter worms Steffen Lippke Hacking Series

Kann ich eine Post verfassen, der garantiert VIRAL wird? 10000 Likes und mehr?

Das geht? Ja, mit etwas CSFR ist das möglich.

Wie das geht und wie jeder sich davor schützen kann erkläre ich Dir heute

Aufgabe: Link (unbemerkt) unterschieben

Um was geht’s? – Cross-site request forgery (CSRF)

… um eine weitere, andere Art wie Hacker attackieren können:

Der Angreifer versucht dem Opfer unbewusst eine Link zuzuschieben, sodass der Browser des Opfers den Schadlink ausführt.  Der Schadlink kann den Server so manipulieren, wie es der Hacker wünscht.

Knappe Einordnung

CSRF nennt sich auch XSRF,“Sea Surf“, Session Riding oder Hostile Linking und gehört zu den Anwendung-Sicherheit-Attacken. Zu der gleichen Kategorie gehören auch Brute-Force-Angriffe (möglichst viele Passwörter testen) oder DNS Poisoning (Hacker überschreibt einen DNS Cache mit falschen Informationen).

DAS. Sagen die Medien. TWITTER

2010 gab es auf Twitter einen Worm „WTF goat worm“.

Dieser funktioniert mit CSRF und basiert auf der Entwicklung von Blogger Christian Heilmann, der auf eine solche Sicherheitslücke aufmerksam machen wollte.

Der Blogger steuerte die API von Twitter an, sodass sich der Post immer wieder kopierte, wenn neue Personen den gleichen Link anklickten.

 

Grundlagen: Mit Browser Sessions CSRF nuzten

CSRF einfach erklärt

Der Angreifer nutzt die Sessions im den Browser seines Opfers. Die meisten Internet-Nutzer sind permanent in verschiedenen Webapps wie z. B. von Facebook, Twitter und anderen Plattformen (via Sessions) angemeldet. Mit den aktiven Sitzungen im Browser kann der Hacker seine Schadlinks über das Konto des Opfers ausführen.

Designen einer GET-Anfrage

Der erste Schritt ist es einen HTTP-GET-Anfrage zu designen, die das bewirkt, was der Hacker möchte:

GET http://www.zwittscherr.com/hackersprofile/follow.php?follow=true

Wenn dieser Link das Opfer aufruft und auf der Plattform Zwittscherr angemeldet ist, dann soll der Browser bei Aufruf des Links das Profil des Hackers folgen.

Während der Attacke merkt das Opfer gar nicht, dass dieser gerade einer neuen Person folgt.

11 Kostenlose Exklusive App Dev Tipps

Deine Mail für Zugang zu praxisnahe App Entwicklung Tipps zu erhalten

Praxis – Jetzt wird viral

GET http://www.zwittscher.com/myprofile/post.php?post=Schau%20was%20ich%20gefunden%20habe%3A%20Folgt%20ihm%20auch!%20http%3A%2F%2Fwww.zwittscherr.com%2Fhackersprofile%2Ffollow.php%3Ffollow%3Dtrue%0A

Jetzt wollen wir den GET-Befehl etwas vitaler designen. In dem Beispiel oben hat der Hacker einen Link designt mit dem das Opfer unbemerkt einen Post absendet:

Der Post beinhaltet die Aufforderungen an den Profilleser des Opfers, dass diese das Profil des Hackers folgen sollen. Durch Klick auf den Link repliziert sich der Post auf das Profil des Lesers und immer mehr Zwittscherr Nuzter lesen, klicken (und duplizieren unbewusst).

 

 

Hack IT: So verteilen Häcker Schadlinks

Natürlich ist unser Opfer nicht doof und klickt auf einen „so komischen“ Link. Deshalb gibt ein paar Strategien, wie Hacker dem Opfer einen solchen Link unbemerkt zu schieben können:

Nr. 1 Link Shortner

Die sehr langen HTTP-GET Befehle sind auffällig. Selbst Leihen überlegen sich es zweimal, ob sie auf eine solchen Textblock klicken wollen. Deshalb ist empfehlenswert den Link mit eine Link-Shorter zu verstecken. bit.ly kann Umleitung-Links generieren, sodass das Opfer nicht erkennt, wo der Link hinführt und wie der ursprüngliche Link aussieht.

Nr. 2 Href-Tag

HMTL kann einen Link-Verknüpfung über einen beliebigen Text erstellen:

<a href=“http://www.schadlink.de/sehrboese“> Kennst Du schon diese News?</a>

Der Nutzer sieht nur den Text „Kennst Du schon diese News?“, der blau und unterstrichen ist. Der Schadlink bleibt Ihm verborgen.

Nr. 3 Laden von Bildern, die keine Bilder sind

Der Hacker kann ein „unsichtbares“ Bild in einer Mail oder auf einer Webseite platzieren. Das unechte Bild enthält im src-Attribut keinen Pfad zu einer Bilddatei, sondern einen Schadlink.

Beim Laden der Mail / Webseite ruft sich der Link auf und das Opfer merkt davon nichts.

POST-Anfragen und CSRF?

Mit etwas List kann der Hacker ein „verstecktes“ Formular designen von dem nur der Button zu sehen ist.

Die Werte kann der Hacker in den value-Attributen festlegen. Zuletzt wird der Button mit einem Klick-Köder versehen:
Ich dachte, die meisten neuen Funktion in iOS 8 machen iPhones und iPad einfach nur besser. Aber eine Neuerung ist wirklich eine Revolution“ (t3n am 04.06.2014)

Jetzt sendest Du das HTML-Formular einen Apple-Fan und schon hat er einen POST-Befehl unbewusst ausgelöst.

 

Sicherung: Von MD5 Hashes

Sicherungsmaßnahme

Auf der Seite des Servers können Webhoster bei jedem GET und POST eine geheime Information (Token) mitsenden, sodass der Hacker nicht einfach CSRF ausnutzen kann.

Ein MD5 Hash kann diese kleine Information maskieren und dem Hacker das Leben erschweren.

11 Kostenlose Exklusive App Dev Tipps

Deine Mail für Zugang zu praxisnahe App Entwicklung Tipps zu erhalten

Web-Programmierer realisieren den Schutz durch ein verstecktes Input-Feld, welches einen csrf-Token enthält. Der Browser kann den Token auch in Form eines Cookies speichern

 

Credits

Icons made by Gregor Cresnar from www.flaticon.com is licensed by CC 3.0 BY  – Icons made by dDara from www.flaticon.com is licensed by CC 3.0 BY – Icons made by Icomoon from www.flaticon.com is licensed by CC 3.0 BY –Icons made by Those Icons from www.flaticon.com is licensed by CC 3.0 BY

Sichere Dir den kompletten
Fundamental Ionic Course

Die kostenlosen Tutorials sind ein Ausschnitt
aus dem Fudamental Ionic Course by Steffen Lippke.

Schon 4832 erfolgreiche Absolventen

  • Code Downloads + umfangreiche Lösungen + Dateien für Grundlagen zum Coden
  • Visuelle Beschreibungen mit HD+ Screenshots und Hilfen
  • Steffen's Clean Code - Erweiterung - Verbesserungs - Tipps
 

100 h Kurslänge | 100 % Geld-Zurück-Garantie | Live-Support

 
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.