mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
132 lines
9.9 KiB
Markdown
132 lines
9.9 KiB
Markdown
# 2FA/MFA/OTP Bypass
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
## **Техніки обходу покращеної двофакторної аутентифікації**
|
||
|
||
### **Прямий доступ до кінцевої точки**
|
||
|
||
Щоб обійти 2FA, отримайте доступ до наступної кінцевої точки безпосередньо, знаючи шлях є критично важливим. Якщо не вдається, змініть **Referrer header**, щоб імітувати навігацію з сторінки перевірки 2FA.
|
||
|
||
### **Повторне використання токенів**
|
||
|
||
Повторне використання раніше використаних токенів для аутентифікації в обліковому записі може бути ефективним.
|
||
|
||
### **Використання невикористаних токенів**
|
||
|
||
Спробуйте витягти токен зі свого облікового запису, щоб обійти 2FA в іншому обліковому записі.
|
||
|
||
### **Витік токена**
|
||
|
||
Досліджуйте, чи токен розкритий у відповіді від веб-додатку.
|
||
|
||
### **Експлуатація посилання для перевірки**
|
||
|
||
Використання **посилання для перевірки електронної пошти, надісланого під час створення облікового запису**, може дозволити доступ до профілю без 2FA, як зазначено в детальному [посту](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b).
|
||
|
||
### **Маніпуляція сесією**
|
||
|
||
Ініціювання сесій для облікового запису користувача та жертви, а також завершення 2FA для облікового запису користувача без продовження, дозволяє спробувати отримати доступ до наступного етапу в потоці облікового запису жертви, експлуатуючи обмеження управління сесіями на бекенді.
|
||
|
||
### **Механізм скидання пароля**
|
||
|
||
Дослідження функції скидання пароля, яка входить у додаток після скидання, для її потенціалу дозволити кілька скидань за допомогою одного посилання є критично важливим. Увійшовши з новими обліковими даними, можна обійти 2FA.
|
||
|
||
### **Компрометація платформи OAuth**
|
||
|
||
Компрометація облікового запису користувача на надійній платформі **OAuth** (наприклад, Google, Facebook) може запропонувати шлях для обходу 2FA.
|
||
|
||
### **Атаки методом грубої сили**
|
||
|
||
#### **Відсутність обмеження швидкості**
|
||
|
||
Відсутність обмеження на кількість спроб коду дозволяє атаки методом грубої сили, хоча слід враховувати потенційне тихе обмеження швидкості.
|
||
|
||
Зверніть увагу, що навіть якщо обмеження швидкості встановлено, ви повинні спробувати перевірити, чи відповідь відрізняється, коли надсилається дійсний OTP. У [**цьому пості**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732) дослідник виявив, що навіть якщо обмеження швидкості спрацьовує після 20 невдалих спроб, відповідаючи 401, якщо дійсний код надіслано, отримується відповідь 200.
|
||
|
||
#### **Повільна атака методом грубої сили**
|
||
|
||
Повільна атака методом грубої сили є життєздатною, коли існують обмеження швидкості потоку без загального обмеження швидкості.
|
||
|
||
#### **Скидання обмеження повторної відправки коду**
|
||
|
||
Повторна відправка коду скидає обмеження швидкості, що полегшує продовження спроб методом грубої сили.
|
||
|
||
#### **Обхід обмеження швидкості на стороні клієнта**
|
||
|
||
Документ містить техніки обходу обмеження швидкості на стороні клієнта.
|
||
|
||
#### **Внутрішні дії без обмеження швидкості**
|
||
|
||
Обмеження швидкості можуть захищати спроби входу, але не внутрішні дії облікового запису.
|
||
|
||
#### **Витрати на повторну відправку SMS-коду**
|
||
|
||
Надмірна повторна відправка кодів через SMS несе витрати для компанії, хоча це не обходить 2FA.
|
||
|
||
#### **Нескінченна регенерація OTP**
|
||
|
||
Нескінченна генерація OTP з простими кодами дозволяє атаки методом грубої сили, повторюючи невелику кількість кодів.
|
||
|
||
### **Експлуатація гонки**
|
||
|
||
Експлуатація гонок для обходу 2FA може бути знайдена в конкретному документі.
|
||
|
||
### **Уразливості CSRF/Clickjacking**
|
||
|
||
Дослідження уразливостей CSRF або Clickjacking для відключення 2FA є життєздатною стратегією.
|
||
|
||
### **Експлуатація функції "Запам'ятати мене"**
|
||
|
||
#### **Передбачувані значення куків**
|
||
|
||
Вгадування значення куки "запам'ятати мене" може обійти обмеження.
|
||
|
||
#### **Імітація IP-адреси**
|
||
|
||
Імітація IP-адреси жертви через заголовок **X-Forwarded-For** може обійти обмеження.
|
||
|
||
### **Використання старих версій**
|
||
|
||
#### **Піддомени**
|
||
|
||
Тестування піддоменів може використовувати застарілі версії, які не підтримують 2FA або містять вразливі реалізації 2FA.
|
||
|
||
#### **API кінцеві точки**
|
||
|
||
Старі версії API, вказані шляхами директорій /v\*/, можуть бути вразливими до методів обходу 2FA.
|
||
|
||
### **Обробка попередніх сесій**
|
||
|
||
Припинення існуючих сесій після активації 2FA захищає облікові записи від несанкціонованого доступу з компрометованих сесій.
|
||
|
||
### **Недоліки контролю доступу з резервними кодами**
|
||
|
||
Негайне створення та потенційне несанкціоноване отримання резервних кодів після активації 2FA, особливо з неправильними конфігураціями CORS/XSS уразливостями, становить ризик.
|
||
|
||
### **Розкриття інформації на сторінці 2FA**
|
||
|
||
Розкриття чутливої інформації (наприклад, номер телефону) на сторінці перевірки 2FA є проблемою.
|
||
|
||
### **Скидання пароля, що відключає 2FA**
|
||
|
||
Процес, що демонструє потенційний метод обходу, включає створення облікового запису, активацію 2FA, скидання пароля та подальший вхід без вимоги 2FA.
|
||
|
||
### **Декой-запити**
|
||
|
||
Використання декой-запитів для затемнення спроб методом грубої сили або введення в оману механізмів обмеження швидкості додає ще один рівень до стратегій обходу. Створення таких запитів вимагає тонкого розуміння заходів безпеки додатку та поведінки обмеження швидкості.
|
||
|
||
### Помилки конструкції OTP
|
||
|
||
Якщо OTP створюється на основі даних, які користувач вже має, або які надсилаються раніше для створення OTP, користувач також може його згенерувати та обійти.
|
||
|
||
## 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)
|
||
|
||
P
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|