1. Einleitung
Session Fixation ist eine Technik, die es Hackern ermöglicht, die Sitzung eines Benutzers zu kapern. Diese Technik macht sich die Tatsache zunutze, dass der Server den Sitzungs-ID-Wert nicht jedes Mal ändert, wenn sich der Benutzer anmeldet, sondern stattdessen eine bereits vorhandene Sitzungs-ID verwendet. Der Angriffsprozess umfasst das Erhalten einer gültigen Sitzungs-ID (möglicherweise durch Zugriff auf die Website ), dann die Suche nach einer Möglichkeit für das Opfer, sich mit dieser Sitzungs-ID auf der Website anzumelden, und schließlich, wenn sich das Opfer erfolgreich anmeldet, durchsucht der Hacker die Website mit seinem Konto. Das konkrete Szenario sieht wie folgt aus:
Mallory findet eine Website wie http://unsafe.example.com, die jede Sitzungs-ID aus der Anfrage ohne Authentifizierung akzeptiert.
Mallory sendet Alice eine E-Mail, die den Link http://unsafe.example.com/?SID=1234 enthält.
Alice geht zu http://unsafe.example.com/?SID=1234. Dann melden Sie sich auf der Website an.
Mallory geht einfach zu http://unsafe.example.com/?SID=1234 und nutzt die Website mit Alices Konto.
Mallory kann die folgenden Methoden verwenden, um Cookies für Alice zu setzen:
Fügen Sie ein Skript zum Setzen von Cookies bei
Senden Sie ein HTTP-Antwortpaket mit dem Mallory-Cookie-Wert. Senden Sie ein HTTP-Antwortpaket mit dem Mallory-Cookie-Wert
Verwenden Sie HTML-Meta-Tags:

2. Beispiele
Beispiel 1 – Clientseitiges Scripting
Ähnlich wie im oben genannten Szenario wird in diesem Fall jedoch die Session-ID nicht in der URL, sondern im Cookie übergeben. Um den Wert der Sitzungs-ID im Cookie des Opfers zu bearbeiten, fügt der Hacker ein Stück Javascript ein:
http://website.kom/document.cookie=“sessionid=abcd“;
Beispiel 2 – Tag
Ähnlich wie beim clientseitigen Scripting, aber dieses Mal fügt der Hacker zusätzliche Tags ein:
http://website.kon/
Beispiel 3 – HTTP-Header-Antwort
Das Einfügen der Sitzungs-ID kann auch durch das Abfangen von zwischen dem Client und der Webanwendung ausgetauschten Paketen und das anschließende Einfügen des Set-Cookie-Felds in den Header erfolgen.

3. So verhindern Sie
Die Ursache für diesen Fehler liegt darin, dass der Server die Sitzungs-ID nicht nach jeder erfolgreichen Anmeldung neu generiert. Daher ist die Behebung dieses Fehlers nicht schwierig. Wir müssen lediglich den Wert der Sitzungs-ID ändern und fertig. In PHP verwenden wir die Funktion session_regenerate_id(), um die Sitzung neu zu generieren.