hacktricks/pentesting-web/2fa-bypass.md
2024-02-11 01:46:25 +00:00

6.8 KiB

Bypass 2FA/OTP

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Techniki obejścia dwuskładnikowej autoryzacji (2FA/OTP)

Bezpośredni dostęp do punktu końcowego

Aby obejść 2FA, należy bezpośrednio uzyskać dostęp do kolejnego punktu końcowego, znając ścieżkę. Jeśli nie powiedzie się, zmień nagłówek Referrer tak, aby naśladować nawigację z strony weryfikacji 2FA.

Ponowne wykorzystanie tokenów

Ponowne wykorzystanie wcześniej używanych tokenów do uwierzytelniania w ramach konta może być skuteczne.

Wykorzystanie nieużywanych tokenów

Można spróbować wydobyć token z własnego konta w celu obejścia 2FA w innym koncie.

Ujawnienie tokenu

Sprawdź, czy token jest ujawniony w odpowiedzi z aplikacji internetowej.

Wykorzystanie linku weryfikacyjnego

Użycie linku weryfikacyjnego wysłanego podczas tworzenia konta może umożliwić dostęp do profilu bez 2FA, jak opisano w szczegółach w tym poście.

Manipulacja sesją

Inicjowanie sesji zarówno dla konta użytkownika, jak i ofiary, i ukończenie 2FA dla konta użytkownika bez kontynuowania, umożliwia próbę dostępu do kolejnego kroku w przepływie konta ofiary, wykorzystując ograniczenia zarządzania sesją po stronie serwera.

Mechanizm resetowania hasła

Badanie funkcji resetowania hasła, która loguje użytkownika do aplikacji po zresetowaniu, w celu sprawdzenia możliwości wielokrotnego resetowania za pomocą tego samego linku, jest kluczowe. Zalogowanie się za pomocą nowo ustawionych danych uwierzytelniających może obejść 2FA.

Kompromitacja platformy OAuth

Skompromitowanie konta użytkownika na zaufanej platformie OAuth (np. Google, Facebook) może umożliwić obejście 2FA.

Ataki brute force

Brak limitu szybkości

Brak limitu liczby prób kodu umożliwia ataki brute force, choć należy wziąć pod uwagę potencjalne ciche ograniczenie szybkości.

Wolny atak brute force

Wolny atak brute force jest możliwy, gdy istnieją limity szybkości przepływu bez ogólnego limitu szybkości.

Reset limitu wysyłania kodu

Ponowne wysłanie kodu resetuje limit szybkości, ułatwiając kontynuowanie prób ataku brute force.

Ominięcie limitu szybkości po stronie klienta

Dokument opisuje techniki obejścia limitu szybkości po stronie klienta.

Brak limitu szybkości dla działań wewnętrznych

Limity szybkości mogą chronić przed próbami logowania, ale nie przed wewnętrznymi działaniami na koncie.

Koszty ponownego wysyłania kodu SMS

Wysyłanie nadmiernych ilości kodów SMS wiąże się z kosztami dla firmy, ale nie obejmuje to 2FA.

Nieskończona regeneracja OTP

Nieskończona generacja OTP za pomocą prostych kodów umożliwia atak brute force poprzez ponowne próbowanie małego zestawu kodów.

Wykorzystanie wyścigów (race condition)

Wykorzystanie wyścigów (race conditions) do obejścia 2FA można znaleźć w konkretnym dokumencie.

Podatności CSRF/Clickjacking

Badanie podatności CSRF lub Clickjacking w celu wyłączenia 2FA jest skuteczną strategią.

Wykorzystanie funkcji "Zapamiętaj mnie"

Zgadywanie wartości pliku cookie "zapamiętaj mnie" może obejść ograniczenia.

Podszywanie się pod adres IP

Podszywanie się pod adres IP ofiary za pomocą nagłówka X-Forwarded-For może obejść ograniczenia.

Wykorzystanie starszych wersji

Poddomeny

Testowanie poddomen może obejmować starsze wersje, które nie obsługują 2FA lub zawierają podatne implementacje 2FA.

Punkty końcowe interfejsu API

Starsze wersje interfejsu API, wskazane przez ścieżki katalogowe /v*/, mogą być podatne na metody obejścia 2FA.

Obsługa poprzednich sesji

Zakończenie istniejących sesji po aktywacji 2FA zabezpiecza konta przed nieautoryzowanym dostępem z kompromitowanych sesji.

Wady kontroli dostępu z kodami zapasowymi

Natychmiastowe generowanie i potencjalne nieautoryzowane pobieranie kodów zapasowych po aktywacji 2FA, zwłaszcza przy błędnej konfiguracji CORS/XSS, stanowi ryzyko.

Ujawnienie informacji na stronie 2FA

Ujawnienie poufnych informacji (np. numeru telefonu) na stronie weryfikacji 2FA stanowi zagrożenie.

Wyłączenie 2FA przez resetowanie hasła

Proces demonstrujący potencjalną metodę obejścia obejmuje utworzenie konta, aktywację 2FA, resetowanie hasła i następne logowanie bez wymagania 2FA.

Podstawowe żądania (decoy requests)

Wykorzystanie podstawowych żądań w celu zaciemnienia prób ataku brute force lub wprowadzenia w błąd mechanizmów ograniczania szybkości dodaje kolejną warstwę strategii obejścia. Tworzenie takich żądań wymaga subtelnej znajomości środków bezpieczeństwa aplikacji i zachowań ograniczania szybkości.

Odwołania

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

  • Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub **pobrać HackTricks w form