phpbar.de logo

Mailinglisten-Archive

[php] Login-Cookie: Welcher Inhalt?

[php] Login-Cookie: Welcher Inhalt?

Christoph Jeschke christoph.jeschke at gmail.com
Mit Dez 14 21:42:00 CET 2005


Norbert Pfeiffer schrieb:

> sach ich doch ...
> ist der PC sicher, ist der Keks im Trocknen, sonst nicht !

Dein Keks ist nur dann sicher, wenn auch die Applikation, welche den 
Keks gesetzt hat, sicher ist.

Stell dir vor, Applikation A setzt dir einen Cookie. Nun ist Applikation 
A aber fehlerhaft und erlaubt XSS (Cookie Stealing). Der Angreifer, B, 
verschmutzt nun Applikation A mit einem JavaScript, welches deine 
Cookie-Daten an einen Aufruf hängt, welcher eine Applikation, C, auf 
einem fremden Server aufruft. Applikation C bekommt nun deine 
Cookie-Daten gesendet, speichert diese, und leitet dich zurück auf 
Applikation A - denn das JavaScript durfte die Cookie-Daten regulär lesen.

Als Beispiel:
Im Laufe des letzten Jahres schaute ich mir das Forum von Powie 
(<http://www.pscript.de/> näher an. Es gab in einer früheren Version die 
Möglichkeit, im Profil JavaScript-Code in ein Feld einzufügen, welches 
serverseitig nicht überprüft wurde. Bei meinem Beispielexploit 
verwendete ich den onerror-Handler und ein img-Tag mit einer 
nichtexistenten Adresse. Wurde das Profil angezeigt, rief der Handler 
ein JavaScript (lag auf meinem Server) auf, welches die Cookie-Daten - 
angehängt an die Adresse - und den User auf meinen Server schickte. Das 
Skript loggte die Cookie-Daten und leitete den User wieder zurück auf 
eine "Ihr Login ist fehlgeschlagen"-Seite. Da in den Cookies User-ID und 
(verschlüsseltes) Passwort gespeichert waren, konnte man einfach ein 
bereits bestehendes Cookie editieren oder ein neues erzeugen. Besuchte 
man damit das Forum, war man automatisch eingelogt - mit den Daten des 
bestohlenen Users.

> Wer an einen Rechner kommt, sich Muehe gibt und Zeit hat,
> erarbeitet sich ein Login und nach und nach auch alle
> Zugangsdaten zu irgendwelchen Accounts. Die Cookies gibt
> es sozusagen gratis dazu ... ;-)

XSS läuft ja auch serverseitig und nicht lokal. Wenn jemand in deinen 
Rechner eingebrochen ist, hast Du ganz andere Probleme.

> Einen fremden Cookie ueber das Internet "auszuspaehen"
> sollte eigentlich absolut unmoeglich sein, 

Leider nein. Schlecht programmierte Applikationen gibt es im Internet zu 
  Hauf. Klar kann niemand auf deinen Rechner schauen - aber dein Rechner 
verschickt die Cookies ja gelegentlich.

> ausser fuer
> Herrn Tor, der hat ja seinen privaten Hintereingang auf
> jeder Windows-Maschine, wie schon oefters in der Presse
> geschrieben wurde ...

FUD

Gruß,
Christoph

php::bar PHP Wiki   -   Listenarchive