Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Schwache Anmeldungen und Sitzungen erkennen

Nach dieser Lektion: Ich kann sagen, was eine Anmeldung oder eine Sitzung schwach macht.

Lektion, 55 Min.3 BefehleWebGoat-Lab: geführte Lektionen zur Websicherheit mit WebWolf in der eigenen Kopie

Das Passwort war 123456

Auf der Mitarbeiterseite einer kleinen Firma darf jeder jedes Passwort wählen. Die Hälfte hat 123456 genommen.

An einem Abend probiert jemand eine kurze Liste häufiger Passwörter für jeden Namen der Mitarbeiterliste. Nach wenigen Minuten ist er als Leiter der Buchhaltung drin. Die Seite begrenzte die Versuche nicht.

Die eine Regel

Warnung

Dieses Lab ist eine Sammlung von Lektionen, die absichtlich unsicher sind. Greifen Sie nur Ihre eigene, private Kopie an und nichts sonst. Sie hat keine Verbindung ins Internet. Dieselben Versuche bei einem fremden System sind eine Straftat. Das gilt auch dann, wenn Sie nichts beschädigen wollen.

Am Ende dieser Lektion

Notiz

Ich kann sagen, was eine Anmeldung oder eine Sitzung schwach macht.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Sitzungdie Zeit, in der sich eine Seite merkt, dass Sie angemeldet sind
Cookieein kleiner Wert, den der Browser behält und der Seite zurücksendet
Tokenein Wert, der beweist, dass Sie sich angemeldet habeneine lange Zeichenkette
Hashein Wert fester Länge, aus dem Passwort berechnet, der sich nicht zurückrechnen lässt
Brute Forceviele Versuche nacheinander durchprobieren
Ablaufder Zeitpunkt, ab dem eine Sitzung oder ein Token nicht mehr gilt

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Schwache Passwörter fallen dem Raten zum Opfer

Menschen wählen kurze, häufige Passwörter. Ein Angreifer braucht keinen Einfall, nur eine Liste der häufigen und eine Seite, die endlose Versuche zulässt. Das ist Brute Force.

Drei Schutzmaßnahmen wirken zusammen. Verlangen Sie Länge, nicht ausgefallene Zeichen. Lehnen Sie Passwörter von einer Liste häufiger ab. Bremsen oder sperren Sie wiederholte Fehlversuche.

Beispiel: vier Passwörter beurteilen

PasswortUrteilWarum
123456AblehnenSteht auf jeder Liste häufiger Passwörter
Sommer2025!SchwachWort, Jahr und Zeichen ist ein Muster, das Rater kennen
brotwagen-sieben-hueteGutLang und kein Muster
lenaAblehnenZu kurz und gleich dem Nutzernamen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Seite speichert einen Hash, nicht das Passwort

Eine Seite darf Passwörter nie so speichern, wie sie getippt wurden. Gelangen ihre Daten nach außen, sind alle Konten offen.

Sie speichert einen Hash des Passworts und mischt vorher ein zufälliges Salz (Salt) bei, damit zwei Menschen mit demselben Passwort verschiedene Hashes haben. Dafür gibt es eigens langsame Verfahren wie bcrypt oder Argon2. Bei der Anmeldung hasht sie den Versuch mit demselben Salz und vergleicht.

Ein Sitzungscookie ist ein Schlüssel

Nach der Anmeldung gibt die Seite Ihrem Browser ein Sitzungscookie und erkennt Sie bei jeder Anfrage daran. Wer diesen Wert besitzt, gilt für die Seite als Sie.

Darum muss er zufällig und lang sein, nur über HTTPS gehen, mit HttpOnly vor Skript verborgen sein und ablaufen. Bei der Anmeldung stellt die Seite außerdem einen frischen aus.

Die Sitzungen in Ihrem Lab

Ihr Lab betreibt WebGoat. Starten Sie es und warten Sie eine Minute. Diese drei Runs sehen sich die Eingangstür an, ohne anzumelden. Der zweite fragt eine Seite ab, die eine Anmeldung braucht. Der dritte zeigt das Cookie, das das Lab dafür setzt.

Ist die Anmeldeseite erreichbar?

Befehl
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" http://web/WebGoat/login

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Eine Seite, die eine Anmeldung braucht

Befehl
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" http://web/WebGoat/welcome.mvc

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Cookie dieser Antwort

Befehl
curl -s -I http://web/WebGoat/welcome.mvc | grep -i "^set-cookie"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Was die drei Ausgaben sagen

Die erste gibt 200 und keine Adresse aus. Die zweite gibt 302 und die Adresse der Anmeldung aus: Eine Seite hinter der Anmeldung schickt Fremde zur Tür. Die dritte gibt ein JSESSIONID-Cookie mit Path=/WebGoat; HttpOnly aus.

Der Wert ist zufällig und ändert sich jedes Mal. HttpOnly ist da. Secure fehlt, weil dieses Lab einfaches HTTP nutzt.

Ein häufiger Fehler

Warnung

Viele glauben, ein Token aus zufällig wirkenden Buchstaben sei verborgen. Kodieren ist aber kein Verschlüsseln. Ein Token, das nur den Nutzernamen kodiert, kann jeder lesen und ändern. Nutzen Sie eine zufällige Sitzungskennung, die der Server nachschlägt, oder ein Token mit einer Signatur, die der Server prüft. Prüfen Sie auch den Ablauf.

Ein Token muss signiert sein und ablaufen

Manche Seiten geben ein signiertes Token mit Nutzername, Rolle und Ablaufzeit. Der Server prüft die Signatur, bevor er irgendetwas darin glaubt.

Ein Token ohne Signatur, eines, das der Server nicht prüft, oder eines, das nie abläuft, ist schwach. Lehnen Sie alle drei ab.

Beispiel: drei Token

Das Token sagtSigniert?Urteil
Nutzerin lena, Rolle Kunde, läuft morgen abJaAnnehmen
Nutzerin lena, Rolle admin, läuft morgen abNeinAblehnen: niemand bürgt für admin
Nutzerin lena, Rolle Kunde, vorige Woche abgelaufenJaAblehnen: abgelaufen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Über dieses Lab und seinen Quellcode: WebGoat-Lab: geführte Lektionen zur Websicherheit mit WebWolf in der eigenen Kopie

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.