Cookies: Anwendung, typische Fehler, Praxiswissen und saubere Workflows
Cookies im Web-Pentest richtig einordnen
Cookies sind im Web-Pentest kein Nebenthema, sondern oft der zentrale TrĂ€ger von Authentisierung, Zustandsverwaltung, Rollenbindung und Sicherheitsentscheidungen. In vielen Anwendungen entscheidet nicht nur ein Session-Cookie ĂŒber den Zugriff, sondern eine Kombination aus Session-ID, CSRF-Token-Cookie, Feature-Flags, Mandantenkennung, Tracking-Werten und temporĂ€ren Zustandsmarkern. Wer Cookies nur als Browser-Artefakt betrachtet, ĂŒbersieht schnell AngriffsflĂ€chen wie Session Fixation, schwache Invalidierung, unsichere Attributsetzung oder serverseitige Vertrauensannahmen.
In Burp Suite werden Cookies an mehreren Stellen sichtbar und manipulierbar: im Proxy, in der History, im Repeater, bei Login-Flows und in wiederholbaren Testsequenzen. Der praktische Nutzen entsteht erst dann, wenn klar ist, welche Cookies sicherheitsrelevant sind und welche nur Telemetrie oder Komfortfunktionen abbilden. Ein hÀufiger Fehler besteht darin, alle Cookies gleich zu behandeln. In der RealitÀt muss zwischen Authentisierungs-Cookies, Zustands-Cookies, PrÀferenz-Cookies und rein analytischen Werten unterschieden werden.
Ein sauberer Einstieg beginnt meist mit dem Proxy und einer strukturierten Sicht auf den Traffic. Wer Burp noch nicht sauber vorbereitet hat, sollte zuerst die Grundlagen zu Proxy, Proxy History und Repeater beherrschen. Erst dann lassen sich Cookie-Flows reproduzierbar analysieren. Besonders wichtig ist dabei die Trennung zwischen dem, was der Browser automatisch mitsendet, und dem, was in Burp manuell verÀndert oder wiederholt wird.
Technisch betrachtet bestehen Cookies aus Name, Wert und Attributen. Sicherheitsrelevant sind vor allem Domain, Path, Expires oder Max-Age, Secure, HttpOnly und SameSite. Diese Attribute bestimmen nicht nur, wann ein Cookie ĂŒbertragen wird, sondern auch, ob clientseitige Skripte darauf zugreifen können, ob es nur ĂŒber HTTPS gesendet wird und in welchen Cross-Site-Szenarien es im Request landet. Genau hier entstehen viele reale Schwachstellen: nicht durch die Existenz eines Cookies, sondern durch falsche Annahmen ĂŒber sein Verhalten.
Im Pentest ist deshalb nicht nur die Frage wichtig, ob ein Cookie gesetzt wird, sondern wann, wodurch, mit welchen Attributen und unter welchen Zustandswechseln. Ein Session-Cookie, das nach Login erzeugt wird, aber vor Login bereits existiert und nach erfolgreicher Authentisierung nicht rotiert, deutet auf Session Fixation hin. Ein Cookie, das bei Logout im Browser verschwindet, serverseitig aber weiter gĂŒltig bleibt, deutet auf mangelhafte Session-Invalidierung hin. Ein Cookie, das Rolleninformationen oder Benutzer-IDs direkt clientseitig trĂ€gt, kann auf Manipulationspotenzial hinweisen.
Ein professioneller Workflow beginnt daher immer mit Beobachtung vor Manipulation. Zuerst wird der natĂŒrliche Ablauf aufgenommen: Startseite, Login, Rollenwechsel, Logout, PasswortĂ€nderung, parallele Tabs, Timeout, Passwort-Reset, API-Aufrufe. Danach wird geprĂŒft, welche Cookies in welchem Schritt neu gesetzt, verĂ€ndert oder gelöscht werden. Erst auf dieser Basis lohnt sich gezielte Manipulation.
Featured Empfehlung: Cybersecurity strukturiert lernen
Welche Cookie-Typen in realen Anwendungen wirklich relevant sind
In echten Anwendungen tauchen selten nur ein oder zwei Cookies auf. Moderne Webanwendungen setzen oft eine ganze Reihe von Werten, die unterschiedliche Aufgaben erfĂŒllen. FĂŒr den Pentest ist entscheidend, die sicherheitsrelevanten Cookies schnell zu identifizieren. Das gelingt nicht ĂŒber den Namen allein, sondern ĂŒber Verhalten, Setzzeitpunkt, Lebensdauer und Einfluss auf Autorisierung oder Workflow.
Typische Session-Cookies enthalten eine serverseitig referenzierte Kennung. Der Wert selbst ist dann idealerweise zufĂ€llig und ohne semantische Bedeutung. Kritisch wird es, wenn der Cookie-Wert strukturiert aussieht, etwa Base64-kodierte JSON-Daten, Benutzer-IDs, Rollen oder Zeitstempel enthĂ€lt. Solche Werte mĂŒssen nicht automatisch unsicher sein, aber sie verdienen eine genauere Analyse mit Decoder und bei Bedarf mit Comparer, um Unterschiede zwischen Benutzerkonten, Rollen oder Zeitpunkten sichtbar zu machen.
Daneben existieren hĂ€ufig Anti-CSRF-Cookies, die mit Formularfeldern oder Headern korrelieren. Solche Konstruktionen sind nur dann sinnvoll, wenn die Anwendung serverseitig die Bindung korrekt prĂŒft. Ein hĂ€ufiger Fehler ist ein CSRF-Token-Cookie, das zwar gesetzt wird, aber serverseitig nicht validiert oder nicht an Session und Aktion gebunden ist. In solchen FĂ€llen entsteht eine trĂŒgerische Schutzwirkung. FĂŒr vertiefende PrĂŒfungen ist die Verbindung zu Csrf und Session Management besonders relevant.
- Authentisierungs-Cookies: steuern Login-Zustand, Session-Bindung und oft auch Remember-Me-Funktionen.
- Zustands-Cookies: speichern Workflow-Schritte, Warenkorbstatus, Sprach- oder Mandantenkontext.
- Sicherheits-Cookies: transportieren CSRF-BezĂŒge, GerĂ€tebindungen oder Challenge-ZustĂ€nde.
- PrĂ€ferenz- und Tracking-Cookies: meist nicht direkt kritisch, aber gelegentlich als Seiteneingang fĂŒr Manipulationen nĂŒtzlich.
Remember-Me-Cookies sind besonders interessant. Viele Anwendungen behandeln sie wie harmlose Komfortfunktionen, tatsĂ€chlich bilden sie oft einen zweiten Authentisierungspfad. Wenn ein Benutzer nach Browser-Neustart automatisch wieder eingeloggt wird, muss geprĂŒft werden, ob der Cookie serverseitig widerrufen, an GerĂ€teparameter gebunden oder nach PasswortĂ€nderung ungĂŒltig wird. Fehlt diese Kontrolle, kann ein gestohlener Persistenz-Cookie deutlich wertvoller sein als eine normale Session-ID.
Auch API-nahe Anwendungen nutzen Cookies hĂ€ufiger, als es auf den ersten Blick scheint. Selbst wenn ein Frontend mit JSON arbeitet, kann die Authentisierung weiterhin cookie-basiert sein. Dann mĂŒssen Browser-Requests und API-Requests gemeinsam betrachtet werden. Wer nur auf sichtbare Formulare achtet, verpasst oft die eigentliche Session-Logik im Hintergrund. In solchen FĂ€llen lohnt sich die Kombination mit API Testing.
Wichtig ist auĂerdem, dass nicht jeder Cookie mit kryptischem Namen sicher ist und nicht jeder lesbare Wert unsicher sein muss. Entscheidend ist, ob der Server den Wert vertraut, wie er validiert wird und ob Manipulationen Auswirkungen auf Rechte, IdentitĂ€t oder Workflow haben.
Sicherheitsattribute verstehen statt nur abzuhaken
Die Attribute eines Cookies sind kein formaler Anhang, sondern definieren das tatsĂ€chliche Sicherheitsverhalten. Viele PrĂŒfungen bleiben oberflĂ€chlich, weil nur kontrolliert wird, ob Secure, HttpOnly und SameSite vorhanden sind. In der Praxis reicht das nicht. Entscheidend ist, ob die Attribute zur Anwendung, zum Deployment-Modell und zu den realen Angriffswegen passen.
Secure bedeutet, dass der Cookie nur ĂŒber HTTPS ĂŒbertragen werden soll. Das ist fĂŒr Session-Cookies Pflicht. Trotzdem genĂŒgt die bloĂe Existenz des Flags nicht, wenn die Anwendung parallel unsichere Endpunkte, Downgrade-Pfade oder gemischte Inhalte besitzt. Sobald ein Cookie auf einer HTTP-Subdomain oder in einem unsauberen Redirect-Flow auftaucht, muss geprĂŒft werden, ob Leckage möglich ist. Besonders in Legacy-Umgebungen mit mehreren Hosts und Reverse Proxies entstehen hier Fehler.
HttpOnly reduziert das Risiko, dass clientseitiges JavaScript den Cookie ausliest. Das schĂŒtzt nicht vor Session-Missbrauch an sich, aber es erschwert den direkten Diebstahl ĂŒber XSS. Fehlt HttpOnly bei einem Authentisierungs-Cookie, steigt die KritikalitĂ€t jeder XSS-Schwachstelle erheblich. Die Bewertung eines XSS-Funds hĂ€ngt daher oft direkt an der Cookie-Konfiguration. Die Verbindung zu Xss ist in der Praxis enger, als viele Berichte erkennen lassen.
SameSite ist das am hĂ€ufigsten missverstandene Attribut. SameSite=Strict verhindert die Ăbertragung in vielen Cross-Site-Szenarien, kann aber legitime NavigationsflĂŒsse beeintrĂ€chtigen. SameSite=Lax erlaubt bestimmte NavigationsfĂ€lle und ist heute oft der praktikable Standard. SameSite=None ist nur mit Secure zulĂ€ssig und wird fĂŒr echte Cross-Site-AnwendungsfĂ€lle benötigt, etwa bei föderierten Logins oder eingebetteten Komponenten. Ein Pentest muss deshalb nicht nur prĂŒfen, ob SameSite gesetzt ist, sondern ob die konkrete Wahl zu den GeschĂ€ftsprozessen passt und ob Schutzannahmen realistisch sind.
Domain und Path werden ebenfalls oft unterschĂ€tzt. Ein zu weit gefasster Domain-Wert kann dazu fĂŒhren, dass Cookies an mehrere Subdomains gesendet werden, die nicht denselben Sicherheitsstandard haben. Ein zu breiter Path kann Kollisionen oder unerwartete Ăberschreibungen ermöglichen. In Multi-Subdomain-Umgebungen ist das besonders relevant, wenn Marketing-, Legacy- und Kernanwendung unter derselben Parent-Domain laufen.
Expires und Max-Age definieren die Lebensdauer. Hier geht es nicht nur um Komfort, sondern um Angriffsfenster. Ein Session-Cookie ohne serverseitige Timeout-Logik kann trotz fehlender Persistenz lange missbrauchbar bleiben. Umgekehrt kann ein langlebiger Remember-Me-Cookie vertretbar sein, wenn er serverseitig widerrufbar, gerÀtegebunden und nach sensitiven Aktionen neu ausgestellt wird.
Ein sauberer Test betrachtet Attribute immer im Kontext: Welche Bedrohung soll reduziert werden, welche Browser senden den Cookie wann, welche Subdomains existieren, welche Redirects werden genutzt, und welche serverseitigen PrĂŒfungen ergĂ€nzen die Client-Regeln? Erst diese Gesamtsicht trennt echte Schwachstellen von bloĂen Konfigurationshinweisen.
Sponsored Links
Cookies in Burp Suite systematisch erfassen und analysieren
Der Unterschied zwischen hektischem Klicken und belastbarer Analyse liegt im Workflow. Cookies sollten in Burp nicht zufĂ€llig beim Testen auffallen, sondern gezielt entlang eines reproduzierbaren Ablaufs erfasst werden. DafĂŒr wird zuerst ein definierter Scope gesetzt, dann der komplette Authentisierungs- und Sitzungslebenszyklus aufgenommen: anonyme Nutzung, Login, privilegierte Aktionen, Logout, Session-Timeout, Passwortwechsel und parallele Nutzung in mehreren Tabs oder Browsern.
Im Proxy lĂ€sst sich beobachten, wann ein Server per Set-Cookie neue Werte ausliefert und wann der Browser bestehende Cookies im Cookie-Header zurĂŒcksendet. Diese Trennung ist wichtig: Set-Cookie zeigt die serverseitige Entscheidung, Cookie zeigt das tatsĂ€chliche Verhalten des Clients. Viele Fehler werden nur sichtbar, wenn beide Richtungen getrennt betrachtet werden. Wer Burp strukturiert einsetzt, arbeitet dabei eng mit Proxy Intercept, Proxy History und Repeater Session Test.
Ein bewĂ€hrter Ansatz ist, Requests mit identischen Aktionen unter verschiedenen ZustĂ€nden zu vergleichen: vor Login, nach Login, nach Rollenwechsel, nach Logout. Werden dabei nur Cookies verĂ€ndert oder Ă€ndern sich zusĂ€tzlich Header, Tokens oder Parameter, lĂ€sst sich die tatsĂ€chliche Authentisierungslogik besser verstehen. Burp Comparer ist hier nĂŒtzlich, weil Unterschiede in Headern und Antworten schnell sichtbar werden.
FĂŒr die Analyse einzelner Cookie-Werte lohnt sich ein Blick auf Struktur und Entropie. Ein kurzer numerischer Wert, ein fortlaufender ZĂ€hler oder ein lesbarer Identifier ist bei Session-Cookies fast immer verdĂ€chtig. Ein langer, zufĂ€lliger Wert ist besser, aber nicht automatisch sicher. Wenn sich Teile des Werts zwischen Benutzern systematisch Ă€ndern, kann das auf eingebettete Metadaten oder schwache Signaturmechanismen hinweisen. Base64, URL-Encoding oder JSON-Strukturen sollten dekodiert und in mehreren Varianten verglichen werden.
Ein praktischer Ablauf sieht oft so aus:
1. Browser starten und Burp als Proxy verwenden
2. Anwendung anonym aufrufen
3. Alle Set-Cookie Header der ersten Responses notieren
4. Login durchfĂŒhren
5. Neue oder geÀnderte Cookies identifizieren
6. Einen privilegierten Request an Repeater senden
7. Cookie-Werte einzeln entfernen, austauschen oder wiederverwenden
8. Logout durchfĂŒhren und denselben Request erneut senden
9. Session nach PasswortĂ€nderung und Timeout erneut prĂŒfen
Wichtig ist, Requests nicht nur einmal zu wiederholen. Viele Anwendungen reagieren auf Replay, Race Conditions oder abgelaufene ZustÀnde unterschiedlich. Ein Cookie kann beim ersten Replay noch funktionieren, beim zweiten aber serverseitig invalidiert werden. Ebenso kann ein Logout nur die Browseransicht Àndern, wÀhrend API-Endpunkte mit demselben Cookie weiter erreichbar bleiben. Genau solche Inkonsistenzen sind in realen Pentests wertvoll.
Wer tiefer einsteigen will, sollte Burp nicht isoliert betrachten, sondern als Teil eines Gesamtprozesses aus Scope, Proxy, Repeater und gezielter Wiederholung. Ein sauberer Ăberblick ĂŒber diesen Ablauf findet sich auch in Workflow.
Typische Schwachstellen rund um Cookies und Sessions
Die hÀufigsten Cookie-Probleme sind nicht exotisch. Sie entstehen aus unsauberer Session-Verwaltung, falschen Vertrauensannahmen und unvollstÀndigen Zustandswechseln. Besonders kritisch sind Schwachstellen, bei denen der Server clientseitige Werte direkt oder indirekt als IdentitÀtsnachweis verwendet.
Session Fixation ist ein klassisches Beispiel. Wenn eine Anwendung vor dem Login bereits eine Session-ID vergibt und diese nach erfolgreicher Authentisierung nicht erneuert, kann ein Angreifer versuchen, dem Opfer eine bekannte Session unterzuschieben. Gelingt der Login innerhalb dieser Session, wird die zuvor kontrollierte Kennung plötzlich wertvoll. In Burp lĂ€sst sich das prĂŒfen, indem vor dem Login eine Session erzeugt, der Login durchgefĂŒhrt und anschlieĂend kontrolliert wird, ob dieselbe Session-ID bestehen bleibt.
Ebenso hĂ€ufig ist mangelhafte Session-Invalidierung. Ein Logout-Button löscht dann zwar den Cookie im Browser oder leitet auf eine Login-Seite um, aber serverseitig bleibt die Session gĂŒltig. Das zeigt sich, wenn ein zuvor aufgezeichneter Request im Repeater nach Logout weiterhin erfolgreich ist. Noch kritischer wird es, wenn Sessions nach PasswortĂ€nderung, MFA-Aktivierung oder Rollenwechsel nicht widerrufen werden.
Ein weiterer Problemtyp ist die Vorhersagbarkeit oder schwache Bindung von Session-Werten. Wenn Session-IDs zu kurz sind, erkennbare Muster enthalten oder an Benutzer-IDs gekoppelt erscheinen, muss die Entropie hinterfragt werden. In modernen Frameworks ist das seltener, in Eigenentwicklungen und Legacy-Systemen aber weiterhin realistisch.
- Session-ID wird nach Login nicht rotiert und bleibt aus der anonymen Phase erhalten.
- Logout entfernt nur den Cookie clientseitig, die Session bleibt serverseitig aktiv.
- Rollen- oder Benutzerinformationen werden im Cookie gespeichert und unzureichend validiert.
- SameSite, Secure oder HttpOnly fehlen bei sicherheitsrelevanten Cookies.
- Remember-Me-Cookies bleiben nach Passwortwechsel oder Kontosperrung gĂŒltig.
Auch Cookie-Manipulationen mit indirekter Wirkung sind relevant. Ein Cookie kann etwa eine BenutzeroberflĂ€chenrolle steuern, die serverseitig eigentlich ignoriert werden sollte. Wenn dieselbe Information aber doch in Backend-Entscheidungen einflieĂt, entsteht ein Autorisierungsproblem. Solche FĂ€lle ĂŒberschneiden sich oft mit Idor oder Authentication Bypass.
Nicht zu unterschĂ€tzen sind Cross-Subdomain-Probleme. Wenn eine weniger vertrauenswĂŒrdige Subdomain Cookies fĂŒr die Parent-Domain setzen kann oder wenn mehrere Anwendungen denselben Cookie-Namespace teilen, entstehen Kollisionen und Ăberschreibungsrisiken. In Bug-Bounty- und Enterprise-Umgebungen tauchen solche Fehler regelmĂ€Ăig auf, besonders wenn alte und neue Anwendungen parallel betrieben werden.
SchlieĂlich gibt es noch den Bereich der Signatur- und Token-Cookies. Manche Anwendungen speichern Zustandsdaten clientseitig und signieren sie. Ist die Signatur schwach, falsch implementiert oder gar nicht geprĂŒft, lassen sich Werte manipulieren. Das betrifft nicht nur klassische Cookies, sondern auch JWT-Ă€hnliche Konstruktionen im Cookie-Kontext. Dann ist die Verbindung zu Jwt Testing naheliegend.
Sponsored Links
Praxisnahe Testmethoden mit Repeater, Decoder und Vergleichstechniken
Der Repeater ist das wichtigste Werkzeug fĂŒr Cookie-Tests, weil er kontrollierte Wiederholungen unter verĂ€nderten Bedingungen erlaubt. Statt im Browser unklare Seiteneffekte zu erzeugen, kann ein einzelner Request mit exakt definierten Headern, Parametern und Cookie-Werten erneut gesendet werden. Dadurch wird sichtbar, welche Komponente die Autorisierung tatsĂ€chlich trĂ€gt.
Ein typischer Test beginnt mit einem funktionierenden authentisierten Request. Danach werden Cookies einzeln entfernt, ersetzt oder in Ă€ltere ZustĂ€nde zurĂŒckgesetzt. Wenn ein Request ohne den vermeintlich zentralen Session-Cookie weiterhin erfolgreich ist, existiert möglicherweise ein zweiter Authentisierungspfad. Wenn nur ein Tracking-Cookie entfernt wird und plötzlich ein CSRF-Fehler erscheint, war dessen Rolle falsch eingeschĂ€tzt.
Sehr nĂŒtzlich ist die Arbeit mit mehreren Benutzerkonten. Ein Request von Benutzer A wird gespeichert, dann werden nur die Cookies von Benutzer B eingesetzt. Bleibt die Antwort erfolgreich oder Ă€ndert sich nur ein Teil der Daten, deutet das auf schwache Bindung zwischen Session, Benutzerkontext und angeforderter Ressource hin. Diese Methode ist besonders effektiv bei API-Endpunkten und Objektzugriffen.
Decoder hilft, wenn Cookie-Werte kodiert oder serialisiert sind. Base64, URL-Encoding, JSON, Hex oder verschachtelte Formate kommen hĂ€ufig vor. Entscheidend ist nicht nur das Dekodieren, sondern das Vergleichen mehrerer Werte aus unterschiedlichen ZustĂ€nden. Wenn sich etwa nur ein Feld wie role=user zu role=admin Ă€ndert, ist das ein starkes Signal fĂŒr clientseitig transportierte Autorisierungsdaten. Ob daraus eine Schwachstelle wird, hĂ€ngt davon ab, ob der Server Manipulationen akzeptiert.
Ein praktisches Beispiel fĂŒr einen manuellen Repeater-Test:
GET /account/profile HTTP/1.1
Host: target.example
Cookie: session=abc123; tenant=blue; prefs=lang%3Dde
User-Agent: Mozilla/5.0
Accept: */*
Danach werden Varianten erzeugt: session entfernen, tenant Ă€ndern, prefs löschen, alte session erneut einsetzen, Logout durchfĂŒhren und denselben Request wiederholen. Die Antworten werden nicht nur auf Statuscodes geprĂŒft, sondern auf Inhalt, Redirect-Ziele, Fehlermeldungen, Header und Seiteneffekte. Ein 302 auf /login ist klar. Ein 200 mit leerem Profil, ein 403 nur fĂŒr bestimmte Aktionen oder ein 500 bei manipuliertem Cookie liefern oft wertvollere Hinweise.
Comparer ist hilfreich, wenn Unterschiede subtil sind. Zwei Antworten können denselben Statuscode liefern, aber unterschiedliche Benutzer-IDs, Rollenhinweise, CSRF-Token oder Cache-Header enthalten. Gerade bei Session-Tests ist diese Detailtiefe entscheidend. Wer nur auf sichtbare HTML-Ausgabe schaut, ĂŒbersieht oft, dass die Anwendung intern bereits in einen anderen Zustand gewechselt ist.
FĂŒr gröĂere Serien von Variationen kann auch Intruder sinnvoll sein, etwa um Cookie-Formate, Signaturreaktionen oder Zustandskombinationen zu testen. Dabei ist ZurĂŒckhaltung wichtig: Cookie-Tests können schnell in aggressive Authentisierungsversuche kippen. Deshalb mĂŒssen Scope, Rate und Freigabe sauber definiert sein, insbesondere im Rahmen von Legal.
Fehlerbilder bei Login, Logout, Timeout und parallelen Sitzungen
Viele schwerwiegende Session-Probleme zeigen sich nicht im statischen Login-Request, sondern in ĂbergĂ€ngen. Deshalb mĂŒssen Login, Logout, Timeout und parallele Sitzungen als zusammenhĂ€ngender Lebenszyklus getestet werden. Genau hier trennt sich oberflĂ€chliches PrĂŒfen von belastbarer Analyse.
Beim Login ist zuerst zu prĂŒfen, ob vor der Authentisierung bereits eine Session existiert und ob diese nach erfolgreichem Login rotiert. Bleibt die Kennung gleich, ist das ein Warnsignal. Danach folgt die Frage, ob zusĂ€tzliche Cookies gesetzt werden, etwa fĂŒr Rollen, GerĂ€tebindung oder Persistenz. Wenn eine Anwendung mehrere Cookies nutzt, aber nur einer davon rotiert, kann ein Teil des Zustands weiterverwendbar bleiben.
Beim Logout reicht es nicht, die BrowseroberflĂ€che zu beobachten. Ein echter Test nutzt einen zuvor aufgezeichneten authentisierten Request im Repeater. Nach Logout wird derselbe Request erneut gesendet. Funktioniert er noch, ist die Session serverseitig nicht sauber invalidiert. ZusĂ€tzlich sollte geprĂŒft werden, ob Logout alle parallelen Sitzungen beendet oder nur die aktuelle Browserinstanz betrifft. In vielen Anwendungen bleiben mobile Sessions, API-Sessions oder Remember-Me-Tokens unberĂŒhrt.
Timeout-Logik ist ein weiterer Klassiker. Manche Anwendungen zeigen nach InaktivitÀt eine Login-Seite, akzeptieren aber im Hintergrund weiterhin alte Cookies. Andere invalidieren nur UI-Endpunkte, nicht aber JSON- oder Datei-Downloads. Deshalb sollten nach Ablauf des erwarteten Timeouts verschiedene Endpunkttypen getestet werden: HTML, API, Dateiabruf, ProfilÀnderung, Passwortwechsel.
- Login mit vorhandener anonymer Session durchfĂŒhren und Session-Rotation prĂŒfen.
- Nach Logout denselben privilegierten Request im Repeater erneut senden.
- Session nach PasswortÀnderung, Rollenwechsel und MFA-Aktivierung erneut testen.
- Parallele Sitzungen in zwei Browsern oder zwei Profilen vergleichen.
- Timeout nicht nur im Frontend, sondern auch auf API- und Download-Endpunkten prĂŒfen.
Parallele Sitzungen liefern oft besonders gute Erkenntnisse. Wenn Benutzer A in Browser 1 eingeloggt ist und dieselbe Session in Browser 2 wiederverwendet werden kann, ist das nicht automatisch ein Problem. Kritisch wird es, wenn sicherheitsrelevante Aktionen wie PasswortÀnderung, Logout-all-sessions oder Rollenwechsel keine Auswirkungen auf bestehende Sitzungen haben. Dann fehlt eine konsistente serverseitige Sitzungsverwaltung.
Auch Race-Ă€hnliche Effekte sind möglich. Eine Session kann in einem Tab bereits ausgeloggt sein, wĂ€hrend ein anderer Tab noch gĂŒltige Requests absetzt. Solche ĂbergangszustĂ€nde sind besonders bei Single-Page-Applications und API-lastigen Frontends relevant. Wer nur den sichtbaren Browserzustand bewertet, verpasst diese Inkonsistenzen.
FĂŒr Login-nahe PrĂŒfungen lohnt sich ergĂ€nzend ein Blick auf Login Testing und bei Session-Missbrauchsszenarien auf Session Hijacking.
Sponsored Links
Cookie-Manipulation in komplexen Umgebungen: Subdomains, APIs und moderne Frontends
Moderne Anwendungen bestehen selten aus einer einzelnen Domain mit klassischem Server-Rendering. HĂ€ufig gibt es ein Frontend unter app.example.tld, APIs unter api.example.tld, Legacy-Komponenten unter old.example.tld und zusĂ€tzliche Dienste fĂŒr SSO, Uploads oder Reporting. In solchen Umgebungen werden Cookie-Probleme schnell komplex, weil Domain- und Path-Regeln, CORS-Verhalten, SameSite-Effekte und Browserlogik zusammenspielen.
Ein typischer Fehler ist die zu breite Domain-Setzung. Wenn ein Session-Cookie fĂŒr .example.tld gilt, wird er potenziell an mehrere Subdomains gesendet. Das ist nur dann vertretbar, wenn alle beteiligten Hosts denselben Sicherheitsstandard haben und keine weniger vertrauenswĂŒrdigen Systeme darunter liegen. Schon eine schwache Marketing- oder Legacy-Subdomain kann dann zum Risiko werden, etwa durch Cookie-Ăberschreibung oder unerwartete Interaktionen.
Bei APIs ist zusĂ€tzlich wichtig, ob Requests browserbasiert oder serverseitig erfolgen. Browser senden Cookies automatisch nach ihren Regeln, wĂ€hrend manuelle API-Clients explizit konfiguriert werden mĂŒssen. In Burp zeigt sich dadurch oft, dass ein Frontend scheinbar tokenbasiert arbeitet, intern aber weiterhin Cookie-Authentisierung nutzt. Das ist besonders relevant bei Single-Page-Applications, die JSON-Endpunkte ansprechen und gleichzeitig CSRF-Schutz ĂŒber Cookies und Header kombinieren.
SameSite-Probleme treten in föderierten Login-Flows, eingebetteten Widgets und Cross-Origin-Integrationen besonders hÀufig auf. Eine Anwendung kann lokal korrekt funktionieren, aber im realen SSO- oder Redirect-Szenario unerwartet Cookies verlieren oder zu viele Cookies mitsenden. Solche Fehler sind nicht nur funktional, sondern sicherheitsrelevant, wenn Schutzmechanismen auf falschen Browserannahmen beruhen.
Auch Reverse Proxies und Load Balancer spielen hinein. Manche Systeme setzen zusĂ€tzliche Routing- oder AffinitĂ€ts-Cookies, die auf den ersten Blick harmlos wirken. In bestimmten Architekturen können sie aber Informationen ĂŒber Backend-Struktur, Knotenwahl oder Session-Bindung preisgeben. Das ist selten direkt kritisch, kann aber bei tiefergehender Analyse helfen, insbesondere wenn inkonsistente Antworten auf unterschiedliche Backends hinweisen.
Ein weiterer Sonderfall sind signierte oder verschlĂŒsselte Zustands-Cookies in modernen Frameworks. Diese können sicher sein, wenn SchlĂŒsselmanagement, IntegritĂ€tsschutz und Rotation sauber umgesetzt sind. Problematisch wird es bei schwachen Standardkonfigurationen, wiederverwendeten Secrets oder fehlender serverseitiger Kontextbindung. Dann lassen sich Cookies zwischen Benutzern, Umgebungen oder Rollen missbrauchen.
In komplexen Umgebungen ist deshalb ein isolierter Einzelrequest selten ausreichend. Nötig ist eine Sicht auf Hostnamen, Redirect-Ketten, Browserkontext, API-Verhalten und serverseitige Zustandswechsel. Erst dann wird klar, ob ein Cookie wirklich nur Komfortdaten trÀgt oder ein zentraler Sicherheitsanker ist.
Saubere Workflows, Dokumentation und belastbare Befunde
Ein guter Cookie-Test endet nicht mit der Feststellung, dass ein Attribut fehlt oder ein Request nach Logout noch funktioniert. Entscheidend ist, den Befund so zu dokumentieren, dass Ursache, Auswirkung und Reproduzierbarkeit klar sind. Gerade bei Session-Themen scheitern Berichte oft daran, dass nur Screenshots einer Login-Seite oder einzelne Header ohne Kontext gezeigt werden.
Belastbar ist ein Befund dann, wenn der komplette Ablauf nachvollziehbar ist: Ausgangszustand, erzeugte Session, Login, beobachtete Cookie-Ănderung, manipulierter oder wiederholter Request, serverseitige Reaktion und konkrete Sicherheitsauswirkung. Bei Session Fixation muss gezeigt werden, dass dieselbe Kennung vor und nach Login verwendet wird. Bei unvollstĂ€ndigem Logout muss ein privilegierter Request nach Logout weiterhin erfolgreich sein. Bei fehlendem HttpOnly sollte die Auswirkung im Kontext einer realistischen XSS-Kette beschrieben werden.
Wichtig ist auĂerdem die Trennung zwischen Konfigurationsmangel und ausnutzbarer Schwachstelle. Ein fehlendes SameSite-Attribut kann ein HĂ€rtungsmangel sein, aber ohne realistischen Cross-Site-Angriffsweg nicht dieselbe Schwere haben wie eine weiter gĂŒltige Session nach PasswortĂ€nderung. Umgekehrt kann ein scheinbar kleiner Cookie-Fehler in Kombination mit XSS, CSRF oder Subdomain-Kontrolle hochkritisch werden.
Ein professioneller Workflow dokumentiert deshalb immer:
- betroffene Hosts und Pfade
- gesetzte Cookie-Namen und Attribute
- Zeitpunkt der Setzung oder Rotation
- Verhalten bei Login, Logout, Timeout und PasswortÀnderung
- Reproduktionsschritte mit konkreten Requests
- tatsÀchliche Auswirkung auf Authentisierung oder Autorisierung
FĂŒr wiederkehrende PrĂŒfungen lohnt es sich, standardisierte TestfĂ€lle zu pflegen: Session-Rotation, Logout-Invalidierung, Passwortwechsel, parallele Sitzungen, Remember-Me-Widerruf, Cross-Subdomain-Verhalten, CSRF-Bindung. So sinkt das Risiko, dass bei Zeitdruck nur offensichtliche Header geprĂŒft werden, wĂ€hrend die eigentlichen Zustandsfehler unentdeckt bleiben.
Auch die Kommunikation mit Entwicklungsteams profitiert von PrĂ€zision. Statt pauschal zu schreiben, dass Cookies unsicher seien, sollte klar benannt werden, welcher Cookie welche Funktion hat, welche serverseitige Annahme fehlschlĂ€gt und welche Abhilfe technisch sinnvoll ist. Beispiele sind serverseitige Session-Invalidierung, Rotation nach Authentisierung, engere Domain-Scopes, konsequentes Secure und HttpOnly, saubere SameSite-Wahl und Widerruf langlebiger Tokens nach sensitiven Ănderungen.
Wer Burp in gröĂeren Assessments einsetzt, sollte Cookie-Tests nicht isoliert behandeln, sondern als festen Bestandteil des gesamten Web Pentest und des ĂŒbergreifenden Pentesting verstehen. Genau dort entfalten sie ihren vollen Wert: als Bindeglied zwischen Authentisierung, Autorisierung, Browserverhalten und realer Ausnutzbarkeit.
Weiter Vertiefungen und Link-Sammlungen
Passende Vertiefungen, Vergleiche und angrenzende Hydra-Themen:
Passender Lernpfad:
Passende Erweiterungen:
Passende Lernbundels:
Passende Zertifikate: