# Passwortzurücksetz-Token-Leck über Referrer
* Der HTTP Referer-Header kann den Passwortzurücksetz-Token leaken, wenn er in der URL enthalten ist. Dies kann passieren, wenn ein Benutzer auf einen Link einer Drittanbieter-Website klickt, nachdem er eine Passwortzurücksetzung angefordert hat.
* **Auswirkungen**: Potenzieller Kontoübernahme durch Cross-Site Request Forgery (CSRF)-Angriffe.
* **Ausnutzung**: Um zu überprüfen, ob ein Passwortzurücksetz-Token im Referer-Header geleakt wird, **fordern Sie eine Passwortzurücksetzung** an Ihre E-Mail-Adresse an und **klicken Sie auf den bereitgestellten Zurücksetzlink**. **Ändern Sie Ihr Passwort** nicht sofort. Stattdessen **navigieren Sie zu einer Drittanbieter-Website** (wie Facebook oder Twitter), während Sie **die Anfragen mit Burp Suite abfangen**. Überprüfen Sie die Anfragen, um zu sehen, ob der **Referer-Header den Passwortzurücksetz-Token enthält**, da dies sensible Informationen an Dritte offenlegen könnte.
* **Referenzen**:
* [HackerOne Bericht 342693](https://hackerone.com/reports/342693)
* [HackerOne Bericht 272379](https://hackerone.com/reports/272379)
* [Artikel über Passwortzurücksetz-Token-Leck](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
## **Passwortzurücksetzung-Poisoning**
* Angreifer können den Host-Header während der Passwortzurücksetz-Anfragen manipulieren, um den Zurücksetzlink auf eine bösartige Seite zu verweisen.
* **Auswirkungen**: Führt zu potenzieller Kontoübernahme durch das Leaken von Zurücksetzungstoken an Angreifer.
* **Minderungsmaßnahmen**:
* Validieren Sie den Host-Header gegen eine Whitelist erlaubter Domains.
* Verwenden Sie sichere, serverseitige Methoden zur Generierung absoluter URLs.
* **Patch**: Verwenden Sie `$_SERVER['SERVER_NAME']`, um Passwortzurücksetz-URLs zu konstruieren, anstatt `$_SERVER['HTTP_HOST']`.
* **Referenzen**:
* [Acunetix Artikel über Passwortzurücksetzung-Poisoning](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **Passwortzurücksetzung durch Manipulation des E-Mail-Parameters**
Angreifer können die Passwortzurücksetz-Anfrage manipulieren, indem sie zusätzliche E-Mail-Parameter hinzufügen, um den Zurücksetzlink umzuleiten.
* Fügen Sie die E-Mail des Angreifers als zweiten Parameter mit & hinzu.
```php
POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
```
* Fügen Sie die Angreifer-E-Mail als zweiten Parameter mit %20 hinzu
```php
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
```
* Fügen Sie die Angreifer-E-Mail als zweiten Parameter mit | hinzu
```php
POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
```
* Fügen Sie die E-Mail des Angreifers als zweiten Parameter mit cc hinzu
```php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
```
* Fügen Sie die E-Mail des Angreifers als zweiten Parameter unter Verwendung von Bcc hinzu
```php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
```
* Fügen Sie die Angreifer-E-Mail als zweiten Parameter mit , hinzu
```php
POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
```
* Fügen Sie die Angreifer-E-Mail als zweiten Parameter im JSON-Array hinzu
```php
POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}
```
* **Minderungsmaßnahmen**:
* E-Mail-Parameter serverseitig ordnungsgemäß analysieren und validieren.
* Vorbereitete Anweisungen oder parametrisierte Abfragen verwenden, um Injektionsangriffe zu verhindern.
* **Referenzen**:
* [https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be](https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be)
* [https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/](https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/)
* [https://twitter.com/HusseiN98D/status/1254888748216655872](https://twitter.com/HusseiN98D/status/1254888748216655872)
## **Ändern von E-Mail und Passwort eines beliebigen Benutzers über API-Parameter**
* Angreifer können E-Mail- und Passwortparameter in API-Anfragen ändern, um die Kontodaten zu ändern.
```php
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})
```
* **Minderungsmaßnahmen**:
* Stellen Sie strenge Parameterüberprüfungen und Authentifizierungsprüfungen sicher.
* Implementieren Sie robustes Logging und Monitoring, um verdächtige Aktivitäten zu erkennen und darauf zu reagieren.
* **Referenz**:
* [Vollständige Kontoübernahme durch API-Parameter-Manipulation](https://medium.com/@adeshkolte/full-account-takeover-changing-email-and-password-of-any-user-through-api-parameters-3d527ab27240)
## **Keine Ratenbegrenzung: E-Mail-Bombardierung**
* Mangelnde Ratenbegrenzung bei Passwortzurücksetzanforderungen kann zu E-Mail-Bombardierung führen, wodurch der Benutzer mit Rücksetz-E-Mails überflutet wird.
* **Minderungsmaßnahmen**:
* Implementieren Sie eine Ratenbegrenzung basierend auf IP-Adresse oder Benutzerkonto.
* Verwenden Sie CAPTCHA-Herausforderungen, um automatisierten Missbrauch zu verhindern.
* **Referenzen**:
* [HackerOne Bericht 280534](https://hackerone.com/reports/280534)
## **Herausfinden, wie das Passwort-Zurücksetz-Token generiert wird**
* Das Verständnis des Musters oder der Methode hinter der Token-Generierung kann dazu führen, dass Tokens vorhergesagt oder brute-forced werden. Einige Optionen:
* Basierend auf Zeitstempel
* Basierend auf der Benutzer-ID
* Basierend auf der E-Mail des Benutzers
* Basierend auf Vorname und Nachname
* Basierend auf Geburtsdatum
* Basierend auf Kryptographie
* **Minderungsmaßnahmen**:
* Verwenden Sie starke, kryptografische Methoden zur Token-Generierung.
* Stellen Sie ausreichende Zufälligkeit und Länge sicher, um Vorhersehbarkeit zu verhindern.
* **Tools**: Verwenden Sie Burp Sequencer, um die Zufälligkeit von Tokens zu analysieren.
## **Erratbare UUID**
* Wenn UUIDs (Version 1) erratbar oder vorhersehbar sind, können Angreifer sie brute-forcen, um gültige Rücksetz-Token zu generieren. Überprüfen Sie:
{% content-ref url="uuid-insecurities.md" %}
[uuid-insecurities.md](uuid-insecurities.md)
{% endcontent-ref %}
* **Minderungsmaßnahmen**:
* Verwenden Sie GUID Version 4 für Zufälligkeit oder implementieren Sie zusätzliche Sicherheitsmaßnahmen für andere Versionen.
* **Tools**: Verwenden Sie [guidtool](https://github.com/intruder-io/guidtool) zur Analyse und Generierung von GUIDs.
## **Antwortmanipulation: Schlechte Antwort durch gute ersetzen**
* Manipulation von HTTP-Antworten, um Fehlermeldungen oder Einschränkungen zu umgehen.
* **Minderungsmaßnahmen**:
* Implementieren Sie serverseitige Prüfungen, um die Integrität der Antwort sicherzustellen.
* Verwenden Sie sichere Kommunikationskanäle wie HTTPS, um Man-in-the-Middle-Angriffe zu verhindern.
* **Referenz**:
* [Kritischer Fehler bei Live-Bug-Bounty-Event](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
## **Verwendung eines abgelaufenen Tokens**
* Testen, ob abgelaufene Tokens weiterhin für das Zurücksetzen des Passworts verwendet werden können.
* **Minderungsmaßnahmen**:
* Implementieren Sie strenge Token-Ablaufrichtlinien und validieren Sie das Token-Ablaufdatum serverseitig.
## **Brute Force Passwort-Zurücksetz-Token**
* Versuch, das Rücksetz-Token mit Tools wie Burpsuite und IP-Rotator zu brute-forcen, um IP-basierte Ratenlimits zu umgehen.
* **Minderungsmaßnahmen**:
* Implementieren Sie robuste Ratenbegrenzungs- und Kontosperrmechanismen.
* Überwachen Sie verdächtige Aktivitäten, die auf Brute-Force-Angriffe hindeuten.
## **Versuchen Sie, Ihr Token zu verwenden**
* Testen, ob das Rücksetz-Token eines Angreifers in Verbindung mit der E-Mail des Opfers verwendet werden kann.
* **Minderungsmaßnahmen**:
* Stellen Sie sicher, dass Tokens an die Benutzersitzung oder andere benutzerspezifische Attribute gebunden sind.
## **Sitzungsinvalidierung bei Abmeldung/Passwortzurücksetzung**
* Sicherstellen, dass Sitzungen ungültig werden, wenn sich ein Benutzer abmeldet oder sein Passwort zurücksetzt.
* **Minderungsmaßnahmen**:
* Implementieren Sie ein angemessenes Sitzungsmanagement, um sicherzustellen, dass alle Sitzungen bei Abmeldung oder Passwortzurücksetzung ungültig werden.
## **Sitzungsinvalidierung bei Abmeldung/Passwortzurücksetzung**
* Rücksetz-Token sollten eine Ablaufzeit haben, nach der sie ungültig werden.
* **Minderungsmaßnahmen**:
* Setzen Sie eine angemessene Ablaufzeit für Rücksetz-Token fest und setzen Sie diese serverseitig strikt durch.
## Referenzen
* [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
Treten Sie dem [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
**Hacking Einblicke**\
Engagieren Sie sich mit Inhalten, die in die Aufregung und Herausforderungen des Hackens eintauchen
**Echtzeit-Hack-Nachrichten**\
Bleiben Sie auf dem Laufenden mit der schnelllebigen Hack-Welt durch Echtzeit-Nachrichten und Einblicke
**Neueste Ankündigungen**\
Bleiben Sie informiert über die neuesten Bug-Bounties und wichtige Plattform-Updates
**Treten Sie uns bei** [**Discord**](https://discord.com/invite/N3FrSbmwdy) und beginnen Sie noch heute mit den besten Hackern zusammenzuarbeiten!
{% hint style="success" %}
Lernen & üben Sie AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Lernen & üben Sie GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Unterstützen Sie HackTricks
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
{% endhint %}