Axel Richter: Session-Riding

Beitrag lesen

Hallo,

Ok, aber dann ist der Bereich, wo man damit etwas anrichten kann, relativ beschränkt:

-Der Angreifer muss selber etwas veröffetnlichen können und

Nein, er muss Deinem Browser nur einen Request unterjubeln. Das kann ein Link sein, auf den Du klickst (auch in einer E-Mail) oder auch nur ein Bild, welches Dein Browser via IMG-Element anfordert.

-die URL-Struktur der Webanwendung kennen

Nein. Man muss nur wissen, welche Reqests die Anwendung üblicherweise erwartet und wie sie diese verarbeitet.
Das kann man aus dem Quelltext der Anwendung, die man manipulieren will, und durch etwas Probieren herausbekommen.
_____________________________________________________________________
Session Riding funktioniert wenn:

Ein Nutzer in der selben Browsersitzung[1] an der Anwendung angemeldet war.
[1] Ich gehe davon aus, dass Session-Cookies verfallen, wenn der Browser geschlossen wird, also keine expliziten expires-Einstellungen haben. Hier ist auch eine Schutzmaßnahme, die der Nutzer ergreifen kann: Nach Arbeiten in sessiongesteuerten Anwendungen Browser schließen!

Die Anmeldung über Cookies(mit der SessionID) oder HTTP Authorization-Header[2] während dieser Browsersitzung automatisch verifiziert wird.
[2] Hier funktioniert es allerdings nur, wenn der Angriff von innerhalb der Seiten der Anwendung(dem geschützten realm) erfolgt. Das ist aber nicht weiter schwierig. Stell Dir eine Aktionsbörse vor, wo Nutzer sowohl bieten, als auch Angebote(mit Bildern und Links) einstellen können.

Dann reicht es, wenn der Angreifer es schafft, dass der Browser des Angegriffenen einen Request auf die anzugreifende Anwendung durchführt, in dem per GET- oder POST-Query gefälschte Parameter an die Anwendung übermittelt werden. Da das Session-Cookie oder der Authorization-Header automatisch mitgesendet werden, wenn sie noch nicht verfallen sind, hat die Anwendung keine Chance, diesen gefälschten Request von einem regulären Abschicken des Formulars zu unterscheiden.

_____________________________________________________________________
Nicht funktionieren kann es, wenn die SessionID im GET-Query der URL oder in einem hidden-Feld per POST-Query mitgesendet wird. Dann müsste der Angreifer eine noch gültige SessionID irgendwie abgelauscht haben und diese dann mit an seinen gefälschten Link anhängen oder in das Feld für POST einfügen.

viele Grüße

Axel