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

Брутфорс Формы Входа (Нет Rate Limiting)

Форма входа не ограничивает количество попыток, позволяя подобрать пароль администратора перебором по словарю.

easygolangPro
Задача
# Auth: brute-force формы логина без rate limiting ## Сценарий Вы аудируете интернет-магазин **SecureShop**. У приложения есть форма логина `/login`, обрабатывающая submit с username и password. Команда уверена, что эндпоинт безопасен — пароли хранятся хешированными (bcrypt), валидация работает корректно. По данным внутреннего аудита, в админ-панели хранится конфиденциальная метка, доступная пользователю с привилегиями admin; её требуется получить. ## Цель 1. Изучите, как форма логина реагирует на серию неверных попыток входа: есть ли прогрессивная задержка, временная блокировка, CAPTCHA, ограничение частоты. 2. Найдите способ автоматизированно проверить набор кандидат-паролей для известного username администратора. 3. Получите admin-сессию и извлеките флаг из админ-панели. ## Теория Rate limiting на эндпоинте логина — обязательный контроль безопасности для любого приложения, открытого в публичный интернет. Без него атакующий проверяет тысячи паролей в секунду, ограниченный только пропускной способностью сети. Современные коллекции скомпрометированных паролей (rockyou, HIBP, leaked databases) содержат миллиарды записей; даже без них топ-100 распространённых паролей покрывает значительную долю слабых учёток. Admin-аккаунты особенно подвержены риску, потому что многие администраторы выбирают «удобные» пароли (`admin`, `password`, `123456`) или пароли, содержащие имя приложения. **Уязвимый паттерн (отсутствие защиты):** ```go // Эндпоинт login обрабатывает любое количество запросов без ограничений mux.HandleFunc("POST /login", h.Login) // нет middleware rate limit, нет блокировки, нет задержки, нет CAPTCHA ``` Атака полностью имитирует обычные login-запросы — никаких payload-обходов, только перебор. На сервере без защиты атакующий через `ffuf`, `hydra`, простой Python-скрипт или curl-loop проверяет десятки-сотни паролей за секунду; топ-100 из любого словаря отрабатывает за секунды. После успешного логина — обычная сессия с правами admin-учётной записи. ## Точка входа атаки | Параметр | Значение | |----------|----------| | Эндпоинт логина | `POST /login` (form-encoded `username`, `password`) | | Целевой пользователь | `admin` (имя известно из публичных конвенций) | | Привилегированный эндпоинт | `GET /admin` (флаг отображается на странице) | | Учётные данные обычного пользователя | `demo` / `demo` (для разведки структуры приложения) |
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы — support@hackandfix.ru