2FA/MFA/OTP Bypass
Last updated
Last updated
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)
Aby obejść 2FA, uzyskaj bezpośredni dostęp do kolejnego punktu końcowego, znajomość ścieżki jest kluczowa. Jeśli to się nie powiedzie, zmień nagłówek Referrer, aby naśladować nawigację z strony weryfikacji 2FA.
Ponowne wykorzystanie wcześniej używanych tokenów do autoryzacji w ramach konta może być skuteczne.
Można spróbować wyodrębnić token z własnego konta, aby obejść 2FA w innym koncie.
Sprawdź, czy token jest ujawniony w odpowiedzi z aplikacji webowej.
Użycie linku weryfikacyjnego wysłanego po utworzeniu konta może umożliwić dostęp do profilu bez 2FA, jak podkreślono w szczegółowym poście.
Inicjowanie sesji zarówno dla konta użytkownika, jak i ofiary, oraz zakończenie 2FA dla konta użytkownika bez kontynuacji, pozwala na próbę dostępu do następnego kroku w przepływie konta ofiary, wykorzystując ograniczenia zarządzania sesjami w zapleczu.
Badanie funkcji resetowania hasła, która loguje użytkownika do aplikacji po resecie, pod kątem możliwości umożliwienia wielu resetów za pomocą tego samego linku jest kluczowe. Zalogowanie się z nowo zresetowanymi danymi może obejść 2FA.
Kompromitacja konta użytkownika na zaufanej platformie OAuth (np. Google, Facebook) może oferować drogę do obejścia 2FA.
Brak limitu liczby prób kodu umożliwia ataki brute force, chociaż należy rozważyć potencjalne ciche ograniczenie szybkości.
Wolny atak brute force jest wykonalny, gdy istnieją ograniczenia przepływu bez ogólnego limitu szybkości.
Ponowne wysłanie kodu resetuje limit szybkości, co ułatwia kontynuację prób brute force.
Dokument szczegółowo opisuje techniki obchodzenia limitu szybkości po stronie klienta.
Limity szybkości mogą chronić próby logowania, ale nie działania wewnętrzne konta.
Nadmierne ponowne wysyłanie kodów za pośrednictwem SMS wiąże się z kosztami dla firmy, chociaż nie omija 2FA.
Nieskończona generacja OTP z prostymi kodami umożliwia brute force poprzez ponowne próby małego zestawu kodów.
Wykorzystanie warunków wyścigu do obejścia 2FA można znaleźć w konkretnym dokumencie.
Badanie luk CSRF lub Clickjacking w celu wyłączenia 2FA jest wykonalną strategią.
Zgadnięcie wartości ciasteczka "zapamiętaj mnie" może obejść ograniczenia.
Impersonacja adresu IP ofiary za pomocą nagłówka X-Forwarded-For może obejść ograniczenia.
Testowanie subdomen może wykorzystywać przestarzałe wersje, które nie mają wsparcia dla 2FA lub zawierają podatne implementacje 2FA.
Starsze wersje API, wskazane przez ścieżki katalogów /v*/, mogą być podatne na metody obejścia 2FA.
Zakończenie istniejących sesji po aktywacji 2FA zabezpiecza konta przed nieautoryzowanym dostępem z kompromitowanych sesji.
Natychmiastowe generowanie i potencjalne nieautoryzowane pozyskiwanie kodów zapasowych po aktywacji 2FA, szczególnie przy błędach CORS/XSS, stanowi ryzyko.
Ujawnienie wrażliwych informacji (np. numeru telefonu) na stronie weryfikacji 2FA jest problemem.
Proces demonstrujący potencjalną metodę obejścia obejmuje utworzenie konta, aktywację 2FA, reset hasła i następne logowanie bez wymogu 2FA.
Wykorzystanie fałszywych żądań do zatarcia prób brute force lub wprowadzenia w błąd mechanizmów ograniczania szybkości dodaje kolejny poziom do strategii obejścia. Tworzenie takich żądań wymaga subtelnego zrozumienia środków bezpieczeństwa aplikacji i zachowań ograniczania szybkości.
W przypadku, gdy OTP jest tworzony na podstawie danych, które użytkownik już ma lub które są wysyłane przed utworzeniem OTP, możliwe jest, że użytkownik również go wygeneruje i obejdzie.