Session Fixation
Inhaltsverzeichnis
Was ist Session Fixation?
Wenn ein Benutzer authentifiziert oder anderweitig eine neue Benutzersitzung eingerichtet wird, ohne dass eine vorhandene Sitzungskennung ungültig wird, haben Angreifer die Möglichkeit, authentifizierte Sitzungen zu stehlen.
Beschreibung
Session Fixation kann möglich sein, wenn dieses Problem bei einer Anmelde-URL auftritt (bei der sich der Benutzer gegenüber der Anwendung authentifiziert), kann der Angreifer die Adresse zusammen mit einer festen Sitzungs-ID dem Opfer übergeben, um später die Identität des Opfers mit der angegeben Sitzungs-ID anzunehmen.
Wenn das Problem bei einer Nicht-Anmeldeseite auftritt, können die URL und die feste Sitzungs-ID von einem Angreifer nur verwendet werden, um die Aktionen eines nicht authentifizierten Benutzers zu verfolgen. Wenn die Sicherheitslücke in einem Cookie-Feld oder einem Formularfeld (POST-Parameter) und nicht in einem URL-Parameter (GET) auftritt, ist eventuell eine weitere Schwachstelle notwendig, um das Cookie-Feld im Browser des Opfers festzulegen, damit diese ausgenutzt werden kann.
Ein solches Szenario wird häufig beobachtet, wenn:
Eine Webanwendung authentifiziert einen Benutzer, ohne zuvor die vorhandene Sitzung ungültig zu machen, wodurch die Sitzung, die dem Benutzer bereits zugeordnet ist, weiterhin verwendet wird.
Ein Angreifer kann einen bekannten Sitzungsbezeichner für einen Benutzer erzwingen, sodass der Angreifer nach Authentifizierung des Benutzers Zugriff auf die authentifizierte Sitzung hat. Die Anwendung oder der Container verwendet vorhersagbare Sitzungskennungen.
Bei der generischen Ausnutzung von Sicherheitsanfälligkeiten bei der Sitzungsfixierung erstellt ein Angreifer eine neue Sitzung in einer Webanwendung und zeichnet die zugehörige Sitzungskennung auf. Der Angreifer veranlasst dann das Opfer, sich unter Verwendung dieser Sitzungskennung dem Server zuzuordnen und möglicherweise zu authentifizieren, wodurch der Angreifer über die aktive Sitzung Zugriff auf das Benutzerkonto erhält.
Tipp
Überprüfen Sie die Sicherheit Ihrer Website mit unserem kostenlosen Security Crawler oder mit der OSG Performance Suite Free Version.
Lösung
Vorhandene Sitzungskennungen vor der Autorisierung einer neuen Benutzersitzung ungültig machen. Verwenden Sie für Plattformen wie ASP, die keine neuen Werte für Session-ID-Cookies generieren, ein sekundäres Cookie. Setzen Sie in diesem Ansatz ein sekundäres Cookie im Browser des Benutzers auf einen zufälligen Wert und legen Sie eine Sitzungsvariable auf denselben Wert fest. Wenn die Sitzungsvariable und der Cookie-Wert überhaupt nicht übereinstimmen, machen Sie die Sitzung ungültig und zwingen Sie den Benutzer, sich erneut anzumelden.
Andere Informationen
Andere Angriffsvektoren umfassen DNS-Poisoning und verwandte Angriffe auf ein Netzwerk, bei denen ein Angreifer den Benutzer dazu auffordert, eine bösartige Website zu besuchen, indem eine Anfrage nach einer gültigen Website umgeleitet wird. Netzwerkbasierte Angriffe umfassen normalerweise eine physische Präsenz im Netzwerk des Opfers oder die Kontrolle einer angegriffenen Maschine im Netzwerk.
Dies macht es schwieriger, sie aus der Ferne auszunutzen, aber ihre Bedeutung sollte nicht übersehen werden. Weniger sichere Sitzungsverwaltungsmechanismen, wie die Standardimplementierung in Apache Tomcat, ermöglichen die Angabe von Sitzungskennungen, die normalerweise in einem Cookie erwartet werden, auch in der URL. Dadurch kann ein Angreifer veranlassen, dass ein Opfer eine feste Sitzungskennung verwendet, indem er einfach eine E-Mail mit einer schädlichen URL sendet.
Allgemeiner Schwachstellen-Datenbanklink
https://cwe.mitre.org/data/definitions/384.html
Sie haben noch Fragen?