2024-07-29 11:05:20 +00:00
# 2FA/MFA/OTP Bypass
2022-04-28 16:01:33 +00:00
2024-07-19 11:50:16 +00:00
{% hint style="success" %}
2024-07-29 11:05:20 +00:00
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)
2022-04-28 16:01:33 +00:00
2024-07-19 11:50:16 +00:00
< details >
2022-04-28 16:01:33 +00:00
2024-07-19 11:50:16 +00:00
< summary > Wsparcie dla HackTricks< / summary >
2023-12-31 01:24:39 +00:00
2024-07-19 11:50:16 +00:00
* Sprawdź [**plany subskrypcyjne** ](https://github.com/sponsors/carlospolop )!
* **Dołącz do** 💬 [**grupy Discord** ](https://discord.gg/hRep4RUj7f ) lub [**grupy telegram** ](https://t.me/peass ) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live** ](https://twitter.com/hacktricks\_live )**.**
2024-09-04 13:37:30 +00:00
* **Podziel się sztuczkami hackingowymi, przesyłając PR-y do** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) i [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) repozytoriów github.
2022-04-28 16:01:33 +00:00
< / details >
2024-07-19 11:50:16 +00:00
{% endhint %}
2022-04-28 16:01:33 +00:00
2024-04-18 03:37:19 +00:00
2024-09-04 13:37:30 +00:00
## **Techniki obejścia ulepszonej autoryzacji dwuetapowej**
2022-04-28 16:01:33 +00:00
2024-07-19 11:50:16 +00:00
### **Bezpośredni dostęp do punktu końcowego**
2020-07-15 15:43:14 +00:00
2024-09-04 13:37:30 +00:00
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.
2020-07-15 15:43:14 +00:00
2024-09-04 13:37:30 +00:00
### **Ponowne wykorzystanie tokenów**
2020-07-15 15:43:14 +00:00
2024-09-04 13:37:30 +00:00
Ponowne wykorzystanie wcześniej używanych tokenów do autoryzacji w ramach konta może być skuteczne.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
### **Wykorzystanie nieużywanych tokenów**
2020-07-15 15:43:14 +00:00
2024-09-04 13:37:30 +00:00
Można spróbować wyodrębnić token z własnego konta, aby obejść 2FA w innym koncie.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
### **Ujawnienie tokenu**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
Sprawdź, czy token jest ujawniony w odpowiedzi z aplikacji webowej.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
### **Wykorzystanie linku weryfikacyjnego**
2023-07-30 21:28:42 +00:00
2024-07-19 11:50:16 +00:00
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 ](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b ).
2023-07-30 21:28:42 +00:00
2024-07-19 11:50:16 +00:00
### **Manipulacja sesją**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
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.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
### **Mechanizm resetowania hasła**
2020-07-15 15:43:14 +00:00
2024-09-04 13:37:30 +00:00
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.
2020-07-15 15:43:14 +00:00
2024-09-04 13:37:30 +00:00
### **Kompromitacja platformy OAuth**
2023-10-05 10:00:26 +00:00
2024-09-04 13:37:30 +00:00
Kompromitacja konta użytkownika na zaufanej platformie **OAuth** (np. Google, Facebook) może oferować drogę do obejścia 2FA.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
### **Ataki brute force**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
#### **Brak limitu szybkości**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
Brak limitu liczby prób kodu umożliwia ataki brute force, chociaż należy rozważyć potencjalne ciche ograniczenie szybkości.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
#### **Wolny brute force**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
Wolny atak brute force jest wykonalny, gdy istnieją ograniczenia przepływu bez ogólnego limitu szybkości.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
#### **Reset limitu ponownego wysyłania kodu**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
Ponowne wysłanie kodu resetuje limit szybkości, co ułatwia kontynuację prób brute force.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
#### **Obchodzenie limitu szybkości po stronie klienta**
2020-07-15 15:43:14 +00:00
2024-09-04 13:37:30 +00:00
Dokument szczegółowo opisuje techniki obchodzenia limitu szybkości po stronie klienta.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
#### **Brak limitu szybkości dla działań wewnętrznych**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
Limity szybkości mogą chronić próby logowania, ale nie działania wewnętrzne konta.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
#### **Koszty ponownego wysyłania kodów SMS**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
Nadmierne ponowne wysyłanie kodów za pośrednictwem SMS wiąże się z kosztami dla firmy, chociaż nie omija 2FA.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
#### **Nieskończona regeneracja OTP**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
Nieskończona generacja OTP z prostymi kodami umożliwia brute force poprzez ponowne próby małego zestawu kodów.
2021-01-07 12:13:26 +00:00
2024-07-19 11:50:16 +00:00
### **Wykorzystanie warunków wyścigu**
2021-01-07 12:13:26 +00:00
2024-09-04 13:37:30 +00:00
Wykorzystanie warunków wyścigu do obejścia 2FA można znaleźć w konkretnym dokumencie.
2023-08-16 04:32:29 +00:00
2024-07-19 11:50:16 +00:00
### **Luki CSRF/Clickjacking**
2023-08-16 04:32:29 +00:00
2024-07-19 11:50:16 +00:00
Badanie luk CSRF lub Clickjacking w celu wyłączenia 2FA jest wykonalną strategią.
2023-08-16 04:32:29 +00:00
2024-07-19 11:50:16 +00:00
### **Wykorzystanie funkcji "Zapamiętaj mnie"**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
#### **Przewidywalne wartości ciasteczek**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
Zgadnięcie wartości ciasteczka "zapamiętaj mnie" może obejść ograniczenia.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
#### **Impersonacja adresu IP**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
Impersonacja adresu IP ofiary za pomocą nagłówka **X-Forwarded-For** może obejść ograniczenia.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
### **Wykorzystanie starszych wersji**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
#### **Subdomeny**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
Testowanie subdomen może wykorzystywać przestarzałe wersje, które nie mają wsparcia dla 2FA lub zawierają podatne implementacje 2FA.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
#### **Punkty końcowe API**
2020-07-15 15:43:14 +00:00
2024-09-04 13:37:30 +00:00
Starsze wersje API, wskazane przez ścieżki katalogów /v\*/, mogą być podatne na metody obejścia 2FA.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
### **Zarządzanie poprzednimi sesjami**
2020-07-15 15:43:14 +00:00
2024-09-04 13:37:30 +00:00
Zakończenie istniejących sesji po aktywacji 2FA zabezpiecza konta przed nieautoryzowanym dostępem z kompromitowanych sesji.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
### **Luki w kontroli dostępu z kodami zapasowymi**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
Natychmiastowe generowanie i potencjalne nieautoryzowane pozyskiwanie kodów zapasowych po aktywacji 2FA, szczególnie przy błędach CORS/XSS, stanowi ryzyko.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
### **Ujawnienie informacji na stronie 2FA**
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
Ujawnienie wrażliwych informacji (np. numeru telefonu) na stronie weryfikacji 2FA jest problemem.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
### **Resetowanie hasła wyłączające 2FA**
2020-07-15 15:43:14 +00:00
2024-09-04 13:37:30 +00:00
Proces demonstrujący potencjalną metodę obejścia obejmuje utworzenie konta, aktywację 2FA, reset hasła i następne logowanie bez wymogu 2FA.
2020-07-15 15:43:14 +00:00
2024-07-19 11:50:16 +00:00
### **Fałszywe żądania**
2021-10-07 09:43:36 +00:00
2024-09-04 13:37:30 +00:00
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.
2020-07-15 15:43:14 +00:00
2024-07-29 11:05:20 +00:00
### Błędy konstrukcji OTP
2024-09-04 13:37:30 +00:00
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.
2024-07-29 11:05:20 +00:00
2024-09-04 13:37:30 +00:00
## References
2024-04-06 19:35:05 +00:00
2024-04-07 00:09:03 +00:00
* [https://medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35 ](https://github.com/carlospolop/hacktricks/blob/master/pentesting-web/%22https:/medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35%22/README.md )
2024-02-06 03:10:38 +00:00
* [https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718 ](https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718 )
2024-07-29 11:05:20 +00:00
* [https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce ](https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce )