Перейти к содержимому
← Каталог python Auth Bypass

Timing-атака на форму входа

Обработчик входа раскрывает существование пользователей через разницу во времени ответа — bcrypt вызывается только для существующих аккаунтов.

mediumpythonPro
Задача
# Timing-атака на форму входа ## Сценарий Перед вами интернет-магазин SecureShop с штатной формой авторизации: пара «логин/пароль». При обычной работе всё выглядит корректно — на любую неудачную попытку сервер отвечает однообразным «Invalid credentials». Но при автоматизированном измерении времени ответа в обработчике обнаруживается измеримая закономерность, которую сервер не должен был раскрывать. Эта закономерность позволяет, не подбирая ни одного пароля, **точно определить список существующих в системе логинов** — то есть выполнить user enumeration через побочный канал. ## Цели 1. Авторизуйтесь как `demo` / `demo`, чтобы убедиться в работоспособности приложения. 2. Эмпирически найдите побочный канал, по которому форма входа разглашает существование пользователей. Подсказка: одинаковый текст ответа ещё не означает одинакового поведения сервера. 3. Перечислите аккаунты из списка типичных кандидатов (`admin`, `root`, `support` и т. п.) — решите, какие из них реально существуют. 4. Войдите как `admin` (пароль для этой задачи — `lab-secret`, указан в данных ниже) и получите CTF-флаг. ## Данные | Параметр | Значение | |----------|----------| | Обычный пользователь | `demo` / `demo` | | Цель | `admin` / `lab-secret` (роль administrator) |
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы — support@hackandfix.ru