Перевод: Техники обхода 2FA
@Ent_TranslateIB
Привет, ребята, это снова я. Давайте обсудим различные методы обхода 2FA.
1. Утечка кода 2FA в ответе:
1. При выполнении запроса на получение кода 2FA, например, функции отправки OTP, попробуйте перехватить запрос.
2. Просмотрите ответ на этот запрос и проанализируйте, не произошла ли утечка кода 2FA.
2. Анализ файла JS:
Во время выполнения запроса на получение кода 2FA проанализируйте все JS-файлы, которые упоминаются в ответе, чтобы узнать, содержит ли какой-либо JS-файл информацию, которая может помочь обойти код 2FA.
3. Отсутствие защиты от брутфорса:
Это включает в себя всевозможные проблемы, которые относятся к неправильной конфигурации системы безопасности, такие как отсутствие ограничения скорости (rate limit), отсутствие защиты от брутфорса и т.д.
- Запросите код 2FA и зафиксируйте запрос.
- Повторите этот запрос 100-200 раз, и если ограничение не установлено, это проблема ограничения скорости (rate limit).
- На странице проверки кода 2FA попробуйте выполнить перебор для получения действительного кода 2FA и посмотрите, есть ли какой-либо успех.
- Вы также можете попробовать инициировать, запрашивая OTP на одной стороне и перебором на другой. В какой-то момент OTP совпадут и могут дать быстрый результат.
4. Сброс пароля / Смена электронной почты — Отключение 2FA:
- Если вы способны проводить сложные фишинговые кампании, то заставьте конечного пользователя сменить пароль.
- 2FA отключается после изменения электронной почты или сброса пароля. Это может стать проблемой для некоторых организаций. Однако это зависит от каждого конкретного случая.
5. Отсутствие проверки целостности кода 2FA:
- Запросите код 2FA из учетной записи злоумышленника.
- Используйте этот действительный код 2FA в запросе жертвы 2FA и посмотрите, не обходит ли это защиту 2FA.
6. Прямой запрос:
Перейдите непосредственно на страницу, которая открывается после 2FA или любую другую аутентифицированную страницу приложения и посмотрите, обходит ли это ограничения 2FA.
7. 2FA Обход с помощью заголовка refer:
- Непосредственно перейдите на страницу, которая появляется после 2FA или любой другой страницы приложения, прошедшей проверку подлинности.
- Если успеха нет, измените заголовок refer на URL страницы 2FA. Это может заставить приложение сделать вид, что запрос пришел после выполнения условия 2FA.
8. Злоупотребление резервным кодом:
Применяйте те же методы, что и для 2FA, такие как манипуляция кодом ответа/состояния, перебор и т.д., чтобы обойти резервные коды и отключить/сбросить 2FA.
9. Включение 2FA не приводит к истечению срока действия предыдущей сессии:
- Войдите в приложение в двух разных браузерах и включите 2FA с 1-го сеанса.
- Используйте 2-ю сессию, и если она не истекла, это может стать проблемой при недостаточном истечении срока действия сессии. В этом сценарии, если злоумышленник перехватит активную сессию до 2FA, можно будет выполнять все функции без необходимости 2FA.
10. Clickjacking на функции отключения 2FA:
- Попробуйте создать фрейм страницы, на которой приложение позволяет пользователю отключить 2FA.
- Если вектор атаки iframe успешен, попытайтесь провести социально-инженерную атаку, чтобы манипулировать жертвой и заставить ее попасться в вашу ловушку.
11. Манипулирование ответом:
- Проверьте ответ на запрос 2FA.
- Если вы наблюдаете “Success”: false, измените это на “Success”: true и посмотрите, не обходит ли он 2FA.
- Вы также можете использовать для этого правила Burp “Match & Replace”.
12. Манипуляция кодом состояния:
- Если код состояния ответа равен 4xx, например 401, 402 и т.д.
- Измените код состояния ответа на “200 OK” и посмотрите, не обходит ли он 2FA.
13. Возможность повторного использования кода 2FA:
- Запросите код 2FA и используйте его.
- Теперь повторно используйте тот же код 2FA в другом сеансе, и если он прошел успешную аутентификацию, это потенциальная проблема.
- Кроме того, попробуйте запросить несколько кодов 2FA и посмотрите, истекает ли срок действия ранее запрошенных кодов или нет, когда запрашивается новый код.
- Кроме того, попробуйте повторно использовать ранее использованный код после длительного периода времени, например, 1 день или более. Если это удастся, это проблема, поскольку 1 дня более чем достаточно для искушенного хакера, чтобы либо применить грубую силу, либо взломать 6-значный код 2FA.
14. CSRF на отключение функции 2FA :
- Перейдите на страницу 2FA и нажмите “Отключить 2FA” и зафиксируйте этот запрос с помощью Burp Suite и сгенерируйте CSRF PoC.
- Отправьте этот PoC жертве и проверьте, успешно ли выполняется CSRF, и отключите 2FA из учетной записи жертвы.
- Кроме того, проверьте, требуется ли какое-либо подтверждение аутентификации, например пароль или код 2FA, перед отключением 2FA.
Оригинал статьи - здесь.
Поддержите автора хлопками на Medium.
Перевод статьи был выполнен проектом перевод энтузиаста:
- 📚 @Ent_TranslateIB - Телеграмм канал с тематикой информационной безопасности
- 🔥 @Ent_Translate - Инстаграм проекта