hacktricks/pentesting-web/reset-password.md

12 KiB

Reset/Forgotten Password Bypass

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Join HackenProof Discord 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 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
  • HackerOne Report 272379
  • Artykuł o wycieku tokenów resetowania hasła

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

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 &
POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
  • Dodaj email atakującego jako drugi parametr używając %20
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
  • Dodaj email atakującego jako drugi parametr używając |
POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
  • Dodaj email atakującego jako drugi parametr używając cc
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
  • Dodaj email atakującego jako drugi parametr używając bcc
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
  • Dodaj email atakującego jako drugi parametr używając ,
POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
  • Dodaj email atakującego jako drugi parametr w tablicy json
POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}

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.
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})

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

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 {% 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 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

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

Dołącz do serwera HackenProof Discord, 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 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)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks
{% endhint %}