mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
132 lines
6.2 KiB
Markdown
132 lines
6.2 KiB
Markdown
# Ominięcie 2FA/MFA/OTP
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
## **Zaawansowane techniki omijania dwuetapowej weryfikacji**
|
|
|
|
### **Bezpośredni dostęp do punktu końcowego**
|
|
|
|
Aby ominąć 2FA, uzyskaj bezpośredni dostęp do następnego 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 uwierzytelnienia w ramach konta może być skuteczne.
|
|
|
|
### **Wykorzystanie nieużywanych tokenów**
|
|
|
|
Można spróbować wyodrębnić token z własnego konta, aby ominąć 2FA w innym koncie.
|
|
|
|
### **Ujawnienie tokena**
|
|
|
|
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**
|
|
|
|
Zbadanie funkcji resetowania hasła, która loguje użytkownika do aplikacji po resecie, pod kątem możliwości umożliwienia wielokrotnych resetów za pomocą tego samego linku jest kluczowe. Zalogowanie się z nowo zresetowanymi danymi może ominąć 2FA.
|
|
|
|
### **Kompromitacja platformy OAuth**
|
|
|
|
Kompromitacja konta użytkownika na zaufanej platformie **OAuth** (np. Google, Facebook) może oferować drogę do ominięcia 2FA.
|
|
|
|
### **Ataki brute force**
|
|
|
|
#### **Brak limitu prób**
|
|
|
|
Brak limitu liczby prób kodu umożliwia ataki brute force, chociaż należy rozważyć potencjalne ciche ograniczenie.
|
|
|
|
Należy zauważyć, że nawet jeśli limit prób jest wprowadzony, warto sprawdzić, czy odpowiedź jest inna, gdy wysłany jest ważny OTP. W [**tym poście**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732) badacz błędów odkrył, że nawet jeśli limit prób został wyzwolony po 20 nieudanych próbach, odpowiadając 401, jeśli wysłano ważny kod, otrzymano odpowiedź 200.
|
|
|
|
#### **Powolny brute force**
|
|
|
|
Atak powolnego brute force jest wykonalny, gdy istnieją ograniczenia przepływu bez ogólnego limitu.
|
|
|
|
#### **Reset limitu ponownego wysyłania kodu**
|
|
|
|
Ponowne wysłanie kodu resetuje limit prób, ułatwiając kontynuację prób brute force.
|
|
|
|
#### **Ominięcie limitu prób po stronie klienta**
|
|
|
|
Dokument szczegółowo opisuje techniki omijania limitów prób po stronie klienta.
|
|
|
|
#### **Brak limitu prób dla działań wewnętrznych**
|
|
|
|
Limity prób mogą chronić przed próbami logowania, ale nie przed wewnętrznymi działaniami 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 ominię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 ominąć ograniczenia.
|
|
|
|
#### **Impersonacja adresu IP**
|
|
|
|
Impersonacja adresu IP ofiary za pomocą nagłówka **X-Forwarded-For** może ominąć ograniczenia.
|
|
|
|
### **Wykorzystanie starszych wersji**
|
|
|
|
#### **Subdomeny**
|
|
|
|
Testowanie subdomen może wykorzystywać przestarzałe wersje, które nie obsługują 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 omijania 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 w przypadku błędów 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ę omijania 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 ograniczających próby dodaje kolejny poziom do strategii omijania. Tworzenie takich żądań wymaga subtelnego zrozumienia środków bezpieczeństwa aplikacji i zachowań związanych z ograniczaniem prób.
|
|
|
|
### 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 wcześniej do utworzenia OTP, możliwe jest, że użytkownik również go wygeneruje i ominie.
|
|
|
|
## Referencje
|
|
|
|
- [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)
|
|
|
|
P
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|