mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-16 22:18:27 +00:00
139 lines
6.8 KiB
Markdown
139 lines
6.8 KiB
Markdown
# 2FA/MFA/OTP Bypass
|
|
|
|
{% hint style="success" %}
|
|
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)
|
|
|
|
<details>
|
|
|
|
<summary>Wsparcie dla HackTricks</summary>
|
|
|
|
* 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)**.**
|
|
* **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.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
|
|
## **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](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b).
|
|
|
|
### **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.
|
|
|
|
## References
|
|
|
|
* [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)
|
|
* [https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718](https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718)
|
|
* [https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce](https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce)
|