ProSvet
от Pentest-Tools

Обход аутентификации

Кнопка на экране не значит, что сервер проверяет права. Большинство обходов аутентификации возникает именно из-за этого расхождения.

01

Классические сценарии

  • Серверная проверка отсутствует: кнопка скрыта в UI, но прямой вызов API работает. Это Broken Access Control — №1 в OWASP Top 10 2021.
  • Небезопасная рефлексия: IDOR — /api/user/1005 к чужим данным, если не проверяется владение.
  • Угадываемые идентификаторы сессий (слабый генератор, JWT с none-alg, фиксированный secret).
  • Сброс пароля: токен предсказуем, «секретный вопрос» слабый, нет rate-limit на подбор.
02

Практический пример

Личный кабинет клиента: GET /api/invoices/{id}. Проверка — только «залогинен». Подмена id даёт доступ к счетам других компаний. Технически «никто не взламывал сервер» — но данные утекли.

Ещё один частый случай: мобильное приложение «прячет» админские кнопки, а API их принимает. Или промежуточный прокси отдаёт объект без повторной проверки прав — защита была только на первом экране.

03

История: сброс пароля «по секретному вопросу»

Классическая схема, которая повторяется в разных отраслях: восстановление доступа строится на вопросе вида «девичья фамилия матери» или «любимый предмет в школе». Злоумышленник собирает открытые данные из соцсетей, проходит проверку и получает полный доступ к кабинету — без подбора пароля и без эксплойтов.

Банки и крупные сервисы от таких схем давно уходят: одноразовые коды, подтверждение через второй канал, обязательное уведомление клиента о смене реквизитов. В корпоративных и «внутренних» системах подобные вопросы встречаются до сих пор — и часто становятся самой слабой точкой входа.

04

Как выглядит в разработке

  • Проверка «злогинен ли» вместо «имеет ли право на этот объект»
  • Роли, зашитые в клиенте, а не на сервере; суперпользовательские параметры в query
  • Сброс пароля через «код из SMS» без лимита попыток или через «секретный вопрос» вида «девичья фамилия»
  • API-ключи и JWT с длинным сроком жизни без возможности отзыва
05

Защита

  • Авторизация на каждом объекте и действии на стороне сервера (не только «есть JWT»).
  • Непредсказуемые ID (UUIDv4), отсутствие последовательных id в публичных API.
  • 2FA, блокировка перебора, журнал аномальных входов, отзыв сессий при смене пароля.
  • Безопасное восстановление доступа: одноразовые короткоживущие токены, уведомление пользователя.

Нужна проверка именно вашего контура?

Запустите автоматическое сканирование или закажите ручной аудит с заключением — с приоритетами и планом устранения.

Начать сканирование