# Reset/Forgotten Password Bypass
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
**Hacking Insights**\
Engage with content that delves into the thrill and challenges of hacking
**Real-Time Hack News**\
Keep up-to-date with fast-paced hacking world through real-time news and insights
**Latest Announcements**\
Stay informed with the newest bug bounties launching and crucial platform updates
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) and start collaborating with top hackers today!
## **Wycieki tokenów resetowania hasła przez referer**
* Nagłówek HTTP referer może ujawniać token resetowania hasła, jeśli jest zawarty w URL. Może to nastąpić, gdy użytkownik kliknie link do strony trzeciej po zażądaniu resetowania hasła.
* **Wpływ**: Potencjalne przejęcie konta za pomocą ataków Cross-Site Request Forgery (CSRF).
* **Eksploatacja**: Aby sprawdzić, czy token resetowania hasła wycieka w nagłówku referer, **zażądaj resetowania hasła** na swój adres e-mail i **kliknij link resetujący**. **Nie zmieniaj hasła** od razu. Zamiast tego, **przejdź do strony trzeciej** (takiej jak Facebook lub Twitter), jednocześnie **przechwytując żądania za pomocą Burp Suite**. Sprawdź żądania, aby zobaczyć, czy **nagłówek referer zawiera token resetowania hasła**, ponieważ może to ujawnić wrażliwe informacje osobom trzecim.
* **Referencje**:
* [HackerOne Report 342693](https://hackerone.com/reports/342693)
* [HackerOne Report 272379](https://hackerone.com/reports/272379)
* [Artykuł o wycieku tokenów resetowania hasła](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
## **Zatrucie resetowania hasła**
* Atakujący mogą manipulować nagłówkiem Host podczas żądań resetowania hasła, aby skierować link resetujący do złośliwej witryny.
* **Wpływ**: Prowadzi do potencjalnego przejęcia konta przez ujawnienie tokenów resetowania atakującym.
* **Kroki łagodzące**:
* Waliduj nagłówek Host w porównaniu do białej listy dozwolonych domen.
* Używaj bezpiecznych, serwerowych metod do generowania absolutnych URL.
* **Poprawka**: Użyj `$_SERVER['SERVER_NAME']` do konstruowania URL resetowania hasła zamiast `$_SERVER['HTTP_HOST']`.
* **Referencje**:
* [Artykuł Acunetix o zatruciu resetowania hasła](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **Resetowanie hasła przez manipulację parametrem e-mail**
Atakujący mogą manipulować żądaniem resetowania hasła, dodając dodatkowe parametry e-mail, aby przekierować link resetujący.
* Dodaj e-mail atakującego jako drugi parametr używając &
```php
POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
```
* Dodaj email atakującego jako drugi parametr używając %20
```php
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
```
* Dodaj email atakującego jako drugi parametr używając |
```php
POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
```
* Dodaj email atakującego jako drugi parametr używając cc
```php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
```
* Dodaj email atakującego jako drugi parametr używając bcc
```php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
```
* Dodaj email atakującego jako drugi parametr używając ,
```php
POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
```
* Dodaj email atakującego jako drugi parametr w tablicy json
```php
POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}
```
* **Kroki łagodzenia**:
* Prawidłowo analizuj i waliduj parametry e-mailowe po stronie serwera.
* Używaj przygotowanych instrukcji lub zapytań z parametrami, aby zapobiec atakom typu injection.
* **Referencje**:
* [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)
## **Zmiana e-maila i hasła dowolnego użytkownika za pomocą parametrów API**
* Atakujący mogą modyfikować parametry e-maila i hasła w żądaniach API, aby zmienić dane logowania do konta.
```php
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})
```
* **Kroki łagodzenia**:
* Zapewnij ścisłą walidację parametrów i kontrole uwierzytelniania.
* Wprowadź solidne logowanie i monitorowanie, aby wykrywać i reagować na podejrzane działania.
* **Referencje**:
* [Pełne przejęcie konta za pomocą manipulacji parametrami API](https://medium.com/@adeshkolte/full-account-takeover-changing-email-and-password-of-any-user-through-api-parameters-3d527ab27240)
## **Brak ograniczeń szybkości: Bombardowanie e-mailem**
* Brak ograniczeń szybkości w żądaniach resetowania hasła może prowadzić do bombardowania e-mailem, przytłaczając użytkownika wiadomościami o resetowaniu.
* **Kroki łagodzenia**:
* Wprowadź ograniczenia szybkości na podstawie adresu IP lub konta użytkownika.
* Użyj wyzwań CAPTCHA, aby zapobiec automatycznemu nadużywaniu.
* **Referencje**:
* [Raport HackerOne 280534](https://hackerone.com/reports/280534)
## **Dowiedz się, jak generowany jest token resetowania hasła**
* Zrozumienie wzoru lub metody generowania tokenów może prowadzić do przewidywania lub łamania tokenów. Niektóre opcje:
* Na podstawie znacznika czasu
* Na podstawie UserID
* Na podstawie e-maila użytkownika
* Na podstawie imienia i nazwiska
* Na podstawie daty urodzenia
* Na podstawie kryptografii
* **Kroki łagodzenia**:
* Użyj silnych, kryptograficznych metod generowania tokenów.
* Zapewnij wystarczającą losowość i długość, aby zapobiec przewidywalności.
* **Narzędzia**: Użyj Burp Sequencer, aby analizować losowość tokenów.
## **Przewidywalny UUID**
* Jeśli UUID (wersja 1) są przewidywalne, atakujący mogą je łamać, aby generować ważne tokeny resetowania. Sprawdź:
{% content-ref url="uuid-insecurities.md" %}
[uuid-insecurities.md](uuid-insecurities.md)
{% endcontent-ref %}
* **Kroki łagodzenia**:
* Użyj GUID wersji 4 dla losowości lub wprowadź dodatkowe środki bezpieczeństwa dla innych wersji.
* **Narzędzia**: Użyj [guidtool](https://github.com/intruder-io/guidtool) do analizy i generowania GUID-ów.
## **Manipulacja odpowiedzią: Zastąp złą odpowiedź dobrą**
* Manipulowanie odpowiedziami HTTP, aby obejść komunikaty o błędach lub ograniczenia.
* **Kroki łagodzenia**:
* Wprowadź kontrole po stronie serwera, aby zapewnić integralność odpowiedzi.
* Użyj bezpiecznych kanałów komunikacyjnych, takich jak HTTPS, aby zapobiec atakom typu man-in-the-middle.
* **Referencje**:
* [Krytyczny błąd w wydarzeniu Live Bug Bounty](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
## **Używanie wygasłego tokena**
* Testowanie, czy wygasłe tokeny mogą być nadal używane do resetowania hasła.
* **Kroki łagodzenia**:
* Wprowadź ścisłe zasady wygasania tokenów i waliduj wygasanie tokenów po stronie serwera.
## **Brute Force Token Resetowania Hasła**
* Próba złamania tokena resetowania za pomocą narzędzi takich jak Burpsuite i IP-Rotator, aby obejść ograniczenia szybkości oparte na IP.
* **Kroki łagodzenia**:
* Wprowadź solidne mechanizmy ograniczania szybkości i blokady konta.
* Monitoruj podejrzane działania wskazujące na ataki brute-force.
## **Spróbuj użyć swojego tokena**
* Testowanie, czy token resetowania atakującego może być użyty w połączeniu z e-mailem ofiary.
* **Kroki łagodzenia**:
* Upewnij się, że tokeny są powiązane z sesją użytkownika lub innymi atrybutami specyficznymi dla użytkownika.
## **Unieważnienie sesji przy wylogowaniu/resetowaniu hasła**
* Zapewnienie, że sesje są unieważniane, gdy użytkownik się wylogowuje lub resetuje hasło.
* **Kroki łagodzenia**:
* Wprowadź odpowiednie zarządzanie sesjami, zapewniając, że wszystkie sesje są unieważniane po wylogowaniu lub resetowaniu hasła.
## **Unieważnienie sesji przy wylogowaniu/resetowaniu hasła**
* Tokeny resetowania powinny mieć czas wygaśnięcia, po którym stają się nieważne.
* **Kroki łagodzenia**:
* Ustaw rozsądny czas wygaśnięcia dla tokenów resetowania i ściśle egzekwuj go po stronie serwera.
## Referencje
* [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)
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hakerami i łowcami błędów!
**Wgląd w Hacking**\
Zaangażuj się w treści, które zagłębiają się w emocje i wyzwania związane z hackingiem
**Aktualności Hacking w czasie rzeczywistym**\
Bądź na bieżąco z dynamicznym światem hackingu dzięki aktualnym wiadomościom i wglądom
**Najnowsze ogłoszenia**\
Bądź na bieżąco z najnowszymi nagrodami za błędy i istotnymi aktualizacjami platformy
**Dołącz do nas na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hakerami już dziś!
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Ucz się i ćwicz Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Wsparcie HackTricks
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się sztuczkami hackingowymi, przesyłając PR-y do repozytoriów** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
{% endhint %}