Auth Attacks — часть 3: другие механизмы аутентификации

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

аутентификацияsession fixationpassword reset

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

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

🔷Тип: Web, Server-Side

➡️ Session management

  • 🦴 Session Fixation - возможность заполучить валидную сессию или заставить пользователя выполнить логин под специально созданной с возможностью ее переиспользования в дальнейшем.
  • 🦴 Impoper Invalidation - некорректные механизмы инвалидации сессий/токенов, которые приводят к возможности переиспользования в случаях, когда истекло время или пользователь вышел из аккаунта. Встречается чуть ли не в каждом втором приложении, но использовать это в реальных условиях очень сложно.

➡️ Custom auth cookie

  • 🦴 Cookie guessing - если понять принцип формирования кастомной куки, можно подменить/подобрать значение и получить ATO (Account Takeover).
  • 🦴 Insecure deserialization - если для кастомной куки используется сериализация, бывает возможным проведение атак небезопасной десериализации, что при успехе может приводить к RCE

➡️ Password Reset

  • 🦴 Token Guessing - токены со слабой энтропией или логическими ошибками можно легко подобрать
  • 🦴 SQL injection Ultimate power - если приложение имеет где-то SQL-инъекцию и функционал восстановления паролей - это легчайший путь к ATO, потому что обычно эти токены хранятся в базе данных и почти никогда не шифруются (в отличие от паролей)
  • 🦴 Broken Access Control - есть много способов провернуть (включая логические баги, например различная интерпретация поля email по RFC), но суть вектора - смена паролей других пользователей
  • 🦴 Host Header Attack - подмена заголовка Host (или аналогичных) при отправке запроса на восстановление пароля, что может привести к отправке жертве поддельной ссылки, при переходе по которой токен восстановления улетает к атакующему. Очень красивая атака, даже в боевом приложении один раз видел.
  • 🦴 Exotic Exploits - использования необычных техник эксплуатации, которые могут результровать в угоне аккаунта. Как пример - Dangling Markup-инъекция в отправляемое сообщение
  • 🦴 Flood/User Enumeration

➡️ Password Change

  • 🦴 Broken Access Control - также много способов, суть та же самая: смена пароля другому пользователюю
  • 🦴 Logic Flaws - логические проблемы, которые позволяют в той или иной степени облегчить сценарий эксплуатации атак на аутентификацию. В некоторых случаях позволяет перебирать пароли пользователей без негативных эффектов для самой учетной записи (не вызывая ее блокировку)
  • 🦴 Prototype Pollution (Server-Side) - подробнее будет описано далее в этом посте

➡️ Custom CAPTCHA

Как и любое кастомное решение - красная тряпка для любого исследователя безопасности. Проблем тут может быть очень много, среди наиболее популярных:

  • 🦴 CAPTHCA Guessing - возможность угадать/получить от приложения ответ на капчу
  • 🦴 CAPTHCA Modify - возможность заменить значение CAPTCHA на подконтрольное/необходимое
  • 🦴 CAPTHCA DoS - наверное, самая частая проблема в кастомных капчах - возможность испортить капчу/несколько капч по идентификатору, деля невозможным ввести верный ответ, а следовательно и войти в аккаунт

➡️ Registration

  • 🦴 Mass Assignment - возможность внедрения валидных атрибутов в форму регистрации, что может привести к получению дополнительных привилегий в приложении
  • 🦴 Prototype Pollution (Server-Side) - экзотика, но если бекенд приложения работает на JavaScript, потенциально можно переписать прототип объектов и либо получить тот же эффект, что и от Mass Assignment, либо получить RCE, либо вызвать DoS всего приложения (обычно, самый вероятный исход). Позже сделаю качественный пост на эту тему.
  • 🦴 Flood/User Enumeration

➡️ JWT, OAUTH

Имеют свои собственные пути эксплуатации, и это снова тема будущих постов) Упомянуто в здесь, потому что наличие данных механизмов всегда должно инициировать дополнительные проверки типовых уязвимостей подобных систем.

#edu #vuln #web #auth
Hunt Or Be Hunted

Жёлтый стикер с крупной надписью «PASSWORD» на голубом фоне, иллюстрация к посту про уязвимости аутентификации и управление паролями.
Стикер с надписью «PASSWORD» — визуальная метафора к теме паролей и механизмов аутентификации.

Дискуссия

Daniil Filippov
Вижу пост от Леши, сердечко не глядя ставлю 😎
Критика чистого разума (Hunt Or Be Hunted Chat)
Daniil Filippov
Вижу пост от Леши, сердечко не глядя ставлю 😎
Не, ну можно и поглядеть 👀👀
Присоединиться к обсуждению →

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