Grenzen zwischen Anmeldeseiten teilen

HydraBeginner
Jetzt üben

Einführung

Gearrooms Marktstelle bietet eine Hauptseite und eine mobile Seite zur Anmeldung. Beide öffnen den Ausleihdatensatz desselben Mitglieds. Die Richtlinie zählt bereits pro Konto, doch beide Seiten führen getrennte Zähler. Ein auf einer Seite begrenztes Mitglied kann sich auf der anderen weiterhin authentifizieren.

Zeige diese Lücke mit begrenzten Hydra-Versuchen und fasse dann beide Einstiegspunkte in einer gemeinsamen Kontogrenze zusammen. Weise beide Richtungen nach, erhalte die normale Anmeldung eines anderen Mitglieds und bestätige die Wiederherstellung nach natürlichem Ablauf. Dein Ergebnis ist eine wirksame aktive Richtlinie mit echtem Anfrageverlauf und unveränderten Datensätzen, kein Bericht.

Diese angeleitete Übung baut auf Limit Attempts by Account auf. Du solltest dessen Hydra-Formularargument, bekanntes positives Merkmal, JSON-Richtlinie, curl-Diagnosen und deskctl-Befehle kennen. Diese Mechanismen bleiben gleich. Die Umgebung wird mit anderen Mitgliedern und Datensätzen neu vorbereitet; frühere Dateien, Sitzungen oder Prozesse werden nicht übernommen. Workstation ist das vorbereitete Terminal, Equipment Desk die Website. Beide Oberflächen gehören zu einem isolierten Trainingscontainer. Alle Konten und Daten sind synthetische lokale Ressourcen.

Plane etwa 50 Minuten mit Lesen und gewöhnlichen Fehlern ein. Das ist eine Autorenschätzung, keine mit Anfängern gemessene Zeit. Nur das erklärte Testmitglied darf wiederholt falsche Passwörter erhalten. Das Referenzmitglied muss sein bekanntes richtiges Passwort verwenden. Erhalte Originaldienst, Konten, Datensätze und Trainingswerte.

Zwei Einstiegspunkte eines Kontos bestätigen

Bestätige in diesem Schritt, dass beide Seiten tatsächlich dasselbe Mitglied authentifizieren und dieselbe Ausleihe öffnen. Ähnliche Beschriftungen allein belegen keine gemeinsame Identität.

Öffne Equipment Desk, dann Review brief. Das erlaubte Testmitglied ist samplemember mit Passwort Sample24. Das normale Referenzmitglied ist deskteam mit Desk24.

Wähle Member sign-in, übermittle die Testzugangsdaten und wähle Open your record. Prüfe samplemember, Ausleihe LN-318, Jules Chen, Workshop camera kit, Abholung Friday 09:30, Rückgabe Monday 16:00 und den Hinweis zur beschrifteten Tasche für beide Akkus. Wähle Sign out.

Dasselbe Mitglied und die vollständige Kameraausleihe zum Vergleich an beiden Einstiegspunkten

Vergleiche nach jeder echten Anmeldung Member und Record, beide Zeiten und den Packhinweis. Beide Seiten sollten diesen selben Datensatz öffnen.

Wähle Mobile sign-in, verwende dieselben Testzugangsdaten und öffne den Datensatz. Prüfe dieselbe Identität, Ausleihe und alle Angaben und melde dich ab. Dies sind zwei Einstiegspunkte zu einem Mitgliederverzeichnis, keine getrennten Konten oder Hosts.

Wähle Member sign-in, verwende deskteam / Desk24 und öffne den Datensatz. Er zeigt LN-087, Ari Lane, Folding projection screen und den Hinweis, die Leinwand vor dem Verpacken trocken zu halten. Melde dich wieder ab.

Wechsle zu Workstation. Die Oberfläche startet in /home/labex/project/login-limits; pwd zeigt den Ort:

pwd

Falls du anderswo bist, nutze denselben Verzeichniswechsel wie zuvor:

cd /home/labex/project/login-limits

Lies die vorbereitete und die tatsächlich aktive Richtlinie:

cat policy.json
deskctl status

Der Schlüssel key ist bereits account. In entry_groups gehört /signin zu desktop, während /mobile/signin zu mobile gehört. Eine Gruppe bezeichnet die Einstiegspunkte, die einen Zähler für dieses Konto teilen. Unterschiedliche Gruppennamen geben demselben Mitglied derzeit getrennte Zähler. Erhalte drei Fehler, das 30-Sekunden-Fenster und die 12-Sekunden-Sperre.

Die Lücke am alternativen Einstieg beobachten

Begrenze in diesem Schritt den Haupteinstieg und zeige während derselben Sperrzeit eine echte Anmeldung über den mobilen Einstieg.

Bleibe in Workstation. Die vorbereitete Datei enthält weiterhin nur fünf absichtlich falsche Kandidaten für das erlaubte Testmitglied:

cat wrong-passwords.txt

Die tatsächlichen POST-Pfade stehen unter beiden sichtbaren Formularen. Sie verwenden dieselben Felder username und password. Loopback-Adresse 127.0.0.1 und Port 8080 erreichen diesen lokalen Trainingsdienst. Hydras -l wählt jetzt samplemember. -P, -s, -t 1, -I, das angeführte POST-Argument und S=Signed in as bedeuten dasselbe wie in der ersten Übung. Alle Kandidaten sind falsch, daher sollte ein vollständiger Lauf 0 valid password found melden. Diese Ausgabe allein belegt keinen Schutz des alternativen Einstiegs.

Lasse frühere Versuche natürlich ablaufen:

deskctl wait

Führe die folgenden vier Befehle zusammen aus, ohne dazwischen zum Lesen zu pausieren. Die curl-Proben verwenden bekannte richtige Passwörter; -o speichert den jeweiligen Antwortkörper, -w zeigt den HTTP-Status:

hydra -I -l samplemember -P wrong-passwords.txt -s 8080 -t 1 127.0.0.1 http-post-form '/signin:username=^USER^&password=^PASS^:S=Signed in as'
curl -s -o main-probe.html -w 'Main HTTP %{http_code}\n' --data 'username=samplemember&password=Sample24' http://127.0.0.1:8080/signin
curl -s -o mobile-probe.html -w 'Mobile HTTP %{http_code}\n' --data 'username=samplemember&password=Sample24' http://127.0.0.1:8080/mobile/signin
curl -s -o reference-probe.html -w 'Reference HTTP %{http_code}\n' --data 'username=deskteam&password=Desk24' http://127.0.0.1:8080/mobile/signin

Erwarte Main HTTP 429, Mobile HTTP 200 und Reference HTTP 200. Dasselbe Testmitglied wird am Haupteinstieg begrenzt, kann sich mobil aber authentifizieren. Bestätige die mobile Identität, statt nur auf 200 zu vertrauen:

grep -o 'Signed in as samplemember' mobile-probe.html

Lies die echten Serverentscheidungen:

deskctl events

Suche unter derselben Revision einen Schwellenwert von samplemember auf /signin, eine begrenzte Hauptanmeldung und eine authentifizierte Anmeldung auf /mobile/signin. Ein begrenztes Ereignis nur eines Einstiegs belegt keine gemeinsame Grenze. Das Referenzmitglied bleibt ein eigenes Konto; sein Erfolg schließt diese Lücke nicht.

Der Verlauf bleibt nach der Sperre verfügbar. Falls du das Beobachtungsfenster verpasst hast, lasse deskctl wait enden und wiederhole denselben begrenzten Block. Bei Verbindungs- oder Hydra-Syntaxfehlern korrigierst du zuerst vollständiges Argument, Adresse, Port und erklärten Pfad. HTTP 400 bedeutet falsche übermittelte Feldnamen oder Struktur; 404 bedeutet einen falschen Pfad. Ein gewöhnlicher Tippfehler verlangt kein Zurücksetzen der VM.

Beide Seiten einer Kontogruppe zuordnen

Lasse in diesem Schritt beide POST-Pfade für dasselbe Mitglied einen Zähler verwenden. Unterschiedliche Konten müssen weiterhin getrennt bleiben.

Bleibe in Workstation. Ersetze deine Richtliniendatei durch das vollständige Objekt unten. Das angeführte Here-Dokument erhält JSON wörtlich; seine Abschlussmarke EOF muss allein und ohne führende Leerzeichen auf einer Zeile stehen. Wie zuvor überschreibt > diese lokale Datei:

cat > policy.json <<'EOF'
{
  "key": "account",
  "entry_groups": {
    "/signin": "members",
    "/mobile/signin": "members"
  },
  "failed_attempts": 3,
  "window_seconds": 30,
  "cooldown_seconds": 12
}
EOF

Beide Routen haben jetzt denselben Gruppennamen. Er ist ein kurzer, nicht leerer Name, kein besonderes Schlüsselwort. Ein gleichwertiger gemeinsamer Name ist erlaubt. Namen dürfen höchstens 48 Zeichen enthalten. Erhalte Kontoschlüssel, beide tatsächlichen Routenschlüssel und vereinbarte Zahlenwerte. Eine Route zu entfernen, ein Formular abzuschalten oder zum globalen Zähler zurückzukehren erfüllt die Aufgabe nicht.

Wende die Datei ausdrücklich an:

deskctl apply policy.json --wait

Geänderte Richtlinien warten auf den natürlichen Ablauf vorhandener Versuchsstände. Kein aktiver Zähler, Verlauf oder Mitgliedsdatensatz wird gelöscht und der Prozess wird nicht neu gestartet. Dieselbe Richtlinie erneut anzuwenden bleibt wirkungslos. Ein fehlendes JSON-Komma oder falsches Feld lässt die alte Richtlinie aktiv. Korrigiere deine Datei vor dem nächsten Versuch.

deskctl status

Bestätige den aktiven Schlüssel account und übereinstimmende Gruppennamen unter einer neuen Revision. Eine richtig geschriebene lokale Datei reicht nicht, bis der Dienst sie verwendet. Du benötigst jetzt Belege dieser Revision statt früherer Ereignisse mit getrennten Gruppen.

Beide Richtungen testen und Mitgliederzugriff erhalten

Weise in diesem Schritt nach, dass Fehler auf jeder Seite die jeweils andere begrenzen, während das Referenzmitglied weiterarbeiten und das Testmitglied sich natürlich erholen kann.

Bleibe in Workstation. Teste zuerst vom Haupt- zum mobilen Einstieg:

deskctl wait

Führe diesen vollständigen Block zusammen aus:

hydra -I -l samplemember -P wrong-passwords.txt -s 8080 -t 1 127.0.0.1 http-post-form '/signin:username=^USER^&password=^PASS^:S=Signed in as'
curl -s -o mobile-probe.html -w 'Mobile HTTP %{http_code}\n' --data 'username=samplemember&password=Sample24' http://127.0.0.1:8080/mobile/signin
curl -s -o reference-probe.html -w 'Reference HTTP %{http_code}\n' --data 'username=deskteam&password=Desk24' http://127.0.0.1:8080/mobile/signin

Erwarte keine Hydra-Funde, Mobile HTTP 429 und Reference HTTP 200. Die beiden gespeicherten Antworten sollten dazu passen:

grep -o 'Too many attempts' mobile-probe.html
grep -o 'Signed in as deskteam' reference-probe.html
deskctl events

Die aktuelle Revision muss Hauptschwelle, mobile Ablehnung und normale Referenzauthentifizierung zeigen. Warte auf die natürliche Wiederherstellung:

deskctl wait

Wechsle zu Equipment Desk, wähle Mobile sign-in, verwende samplemember / Sample24 und Open your record. Prüfe den unveränderten Kameradatensatz LN-318 mit Akkutaschenhinweis und wähle Sign out. Diese neue mobile Anmeldung bestätigt die Wiederherstellung nach der Grenze des Haupteinstiegs.

Kehre zu Workstation zurück. Kehre nun die Richtung um:

deskctl wait

Führe diesen vollständigen Block zusammen aus:

hydra -I -l samplemember -P wrong-passwords.txt -s 8080 -t 1 127.0.0.1 http-post-form '/mobile/signin:username=^USER^&password=^PASS^:S=Signed in as'
curl -s -o main-probe.html -w 'Main HTTP %{http_code}\n' --data 'username=samplemember&password=Sample24' http://127.0.0.1:8080/signin
curl -s -o reference-probe.html -w 'Reference HTTP %{http_code}\n' --data 'username=deskteam&password=Desk24' http://127.0.0.1:8080/signin

Erwarte keine Funde, Main HTTP 429 und Reference HTTP 200:

grep -o 'Too many attempts' main-probe.html
grep -o 'Signed in as deskteam' reference-probe.html
deskctl events

Dieses Mal muss auf die mobile Schwelle eine Hauptablehnung folgen. Das ist eine andere Richtung, keine umbenannte Kopie des ersten Ergebnisses. Lief eine Diagnose zu spät, lasse den Zustand natürlich ablaufen und wiederhole diese begrenzte Richtung. Erweitere die Kandidaten nicht und setze keine Zähler zurück.

deskctl wait

Wechsle zu Equipment Desk, wähle Member sign-in, verwende samplemember / Sample24 und öffne den ursprünglichen Datensatz LN-318. Diese Hauptanmeldung belegt die Wiederherstellung nach der mobilen Grenze. Melde dich ab und verwende Member sign-in mit deskteam / Desk24, um LN-087 zu öffnen. Prüfe Leinwand und Hinweis zur trockenen Verpackung. Melde dich wieder ab und öffne Visitor guide.

Nach jeder echten Anmeldung erzeugt der Browser seine eigene Sitzung. Die curl-Diagnoseantworten melden ihn nicht an. Bei 403 für einen Datensatz korrigierst du die tatsächliche Browseranmeldung und nutzt Open your record. Korrigiere gewöhnliche Passwort- oder Pfadfehler ohne Neustart des Szenarios.

Beide tatsächlichen Einstiegspunkte folgen jetzt einer Grenze pro Konto, mit aktuellen Belegen für beide Richtungen, erhaltenem Referenzzugriff, natürlicher Wiederherstellung und unveränderten Geschäftsdatensätzen. Die Bewertung liest vorhandene Fakten und öffentliche Seiten; sie führt keine fehlenden Tests oder Wiederherstellungen aus. Das belegt das angegebene lokale Verhalten eines einzelnen Prozesses, keine verteilte Produktionsbegrenzung und keine Abwehr gegen jede automatisierte Anmeldung.

Zusammenfassung

Du hast bestätigt, dass zwei echte Anmeldeseiten eine Identität teilen, eine Lücke durch getrennte Einstiegsgruppen reproduziert und einen gemeinsamen Kontozähler angewendet. Begrenzte Hydra-Tests belegten anschließend beide Richtungen, normalen Referenzzugriff und natürliche Wiederherstellung zu unveränderten Datensätzen. Weder die Ablehnung nur einer Seite noch der Verlauf einer alten Richtlinie belegen das vollständige Ergebnis.