6.8 KiB
2FA/MFA/OTP Bypass
{% 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 dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się sztuczkami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Techniki obejścia ulepszonej autoryzacji dwuetapowej
Bezpośredni dostęp do punktu końcowego
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 tokenów
Ponowne wykorzystanie wcześniej używanych tokenów do autoryzacji w ramach konta może być skuteczne.
Wykorzystanie nieużywanych tokenów
Można spróbować wyodrębnić token z własnego konta, aby obejść 2FA w innym koncie.
Ujawnienie tokenu
Sprawdź, czy token jest ujawniony w odpowiedzi z aplikacji webowej.
Wykorzystanie linku weryfikacyjnego
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.
Manipulacja sesją
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.
Mechanizm resetowania hasła
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 platformy OAuth
Kompromitacja konta użytkownika na zaufanej platformie OAuth (np. Google, Facebook) może oferować drogę do obejścia 2FA.
Ataki brute force
Brak limitu szybkości
Brak limitu liczby prób kodu umożliwia ataki brute force, chociaż należy rozważyć potencjalne ciche ograniczenie szybkości.
Wolny brute force
Wolny atak brute force jest wykonalny, gdy istnieją ograniczenia przepływu bez ogólnego limitu szybkości.
Reset limitu ponownego wysyłania kodu
Ponowne wysłanie kodu resetuje limit szybkości, co ułatwia kontynuację prób brute force.
Obchodzenie limitu szybkości po stronie klienta
Dokument szczegółowo opisuje techniki obchodzenia limitu szybkości po stronie klienta.
Brak limitu szybkości dla działań wewnętrznych
Limity szybkości mogą chronić próby logowania, ale nie działania wewnętrzne konta.
Koszty ponownego wysyłania kodów SMS
Nadmierne ponowne wysyłanie kodów za pośrednictwem SMS wiąże się z kosztami dla firmy, chociaż nie omija 2FA.
Nieskończona regeneracja OTP
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
Wykorzystanie warunków wyścigu do obejścia 2FA można znaleźć w konkretnym dokumencie.
Luki CSRF/Clickjacking
Badanie luk CSRF lub Clickjacking w celu wyłączenia 2FA jest wykonalną strategią.
Wykorzystanie funkcji "Zapamiętaj mnie"
Przewidywalne wartości ciasteczek
Zgadnięcie wartości ciasteczka "zapamiętaj mnie" może obejść ograniczenia.
Impersonacja adresu IP
Impersonacja adresu IP ofiary za pomocą nagłówka X-Forwarded-For może obejść ograniczenia.
Wykorzystanie starszych wersji
Subdomeny
Testowanie subdomen może wykorzystywać przestarzałe wersje, które nie mają wsparcia dla 2FA lub zawierają podatne implementacje 2FA.
Punkty końcowe API
Starsze wersje API, wskazane przez ścieżki katalogów /v*/, mogą być podatne na metody obejścia 2FA.
Zarządzanie poprzednimi sesjami
Zakończenie istniejących sesji po aktywacji 2FA zabezpiecza konta przed nieautoryzowanym dostępem z kompromitowanych sesji.
Luki w kontroli dostępu z kodami zapasowymi
Natychmiastowe generowanie i potencjalne nieautoryzowane pozyskiwanie kodów zapasowych po aktywacji 2FA, szczególnie przy błędach CORS/XSS, stanowi ryzyko.
Ujawnienie informacji na stronie 2FA
Ujawnienie wrażliwych informacji (np. numeru telefonu) na stronie weryfikacji 2FA jest problemem.
Resetowanie hasła wyłączające 2FA
Proces demonstrujący potencjalną metodę obejścia obejmuje utworzenie konta, aktywację 2FA, reset hasła i następne logowanie bez wymogu 2FA.
Fałszywe żądania
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.
Błędy konstrukcji OTP
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.