Вторая часть атак на аутентификацию. Ссылка на первую часть.
Речь пойдет об атаках на второй фактор, но часть из методик применима и для ситуаций, когда коды проверки используются как основной фактор. Основными проблемами таких атак являются логические ошибки и все тот же брутфорс.
🔷Тип: 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


