Auth Attacks Part 2: Multi-Factor Authentication

Я исследую веб‑безопасность и делюсь практическими разбориками уязвимостей: от CSRF и XXE до Server‑Side XSS, race conditions и обходов CSP. Пишу чек‑листы атак и защиты, редкие кейсы из практики и мысли о мышлении пентестера. Только прикладной AppSec, понятные примеры и то, что реально встречается в проде. Учимся охотиться, пока на нас не охотятся.

mfaotpbruteforce

Вторая часть атак на аутентификацию. Ссылка на первую часть.

Речь пойдет об атаках на второй фактор, но часть из методик применима и для ситуаций, когда коды проверки используются как основной фактор. Основными проблемами таких атак являются логические ошибки и все тот же брутфорс.

🔷Тип: Web, Server-Side

  • 🦴 Weak OTP Generator - если приложение использует кастомное решение для генерации кодов, с большой долей вероятности оно будет генерировать последовательности, которые можно предсказать (например, использование стандартного Random в Java). Тем не менее, черным ящиком такое обнаружить практически невозможно.

    -- 🌞 Защита: Использование надежных приложений (напр. Google Authenticator) и функций для генерации кодов.

  • 🦴 Entire Bypass - сессия, выдаваемая приложением (стандартная или после прохождения первого фактора) может некорректно хранить состояние пользователя, что может позволить обойти полностью первый или второй фактор просто перейдя по нужной ссылке внутри приложения.

    -- 🌞 Защита: Выдача временной сессии после первого фактора, хранящей состояние о неполном прохождении аутентификации.

  • 🦴 Account Hijack - наличие подконтрольного атакующему параметра, указывающего на аккаунт, в который выполняется вход после прохождения первого фактора. Так, пройдя первый фактор со своими данными мы можем подменить параметр для второго фактора и войти в аккаунт другого пользователя.

    -- 🌞 Защита: Привязка параметра к otp пользователя

    ---- 🛡 Обход: Подбор otp другого пользователя

    -- 🌞 Защита: Изменение логики для отключения такого параметра, либо внедрение невозможности его изменения

  • 🦴 OTP Bruteforce - перебор возможных значений кода проверки (например, для 4-х значных цифровых кодов это всего 10000 комбинаций)

    -- 🌞 Защита: Разлогинивание из временной сессии

    ---- 🛡 Обход: Автоматизация повторного прохождения первого фактора

    -- 🌞 Защита: Инвалидирования кода проверки после N неправильных попыток ---- 🛡 Обход: Запрос нового кода и перебор N первых возможных кодов. Условно - вы генерируете кучу кодов и в каждом перебираете значения 0000 - 0005 - рано или поздно вы попадаете в otp (хотя скорее otp попадает в ваш диапазон)

    🔝 Также стоит отметить, что сюда также применимы почти все те же техники перебора, защиты и обхода из предыдущего поста

  • 🦴 Flood - забиваем почту/смс жертве тонной кодов (высылаемых после прохождения первого фактора). В случае с смс еще и тратим деньги компании (каждая смс стоит денег)

    -- 🌞 Защита: Лимит на отправку OTP конкретному пользователю.

  • 🦴 Other Vulnerability Types Exploitation - редко встречается, но теоретически возможны всякие SQLi и прочие уязвимости.

    -- 🌞 Защита: уникальна для каждого отдельного класса уязвимостей

Разнообразия тут меньше чем в стандартных формах, но многие упомянутые баги встречаются в реальных приложениях (подтверждено лично), что в целом приводит к краже аккаунтов (Account Takeover, ATO)

#edu #vuln #web #auth #mfa

Стена, усыпанная множеством висячих металлических замков разных форм и размеров, символизирующая защиту, аутентификацию и множество учетных записей.
Фотография множества замков — визуальная метафора темы аутентификации и защиты.

Читайте так же