Перейти к содержимому

Поиск по платформе

Слабые Пароли (Нет Валидации Сложности)

Форма регистрации принимает любые пароли, включая однозначные. Аккаунт admin защищён паролем 'admin'.

Автор: Hack & Fix
Освоишь: bcrypt/argon2constant-time compareMFA
Легко+30 XP ~20 мин golang
CWE-287 · A07:2021 Pro
Обложка: Слабые Пароли (Нет Валидации Сложности) Обложка: Слабые Пароли (Нет Валидации Сложности)
Задача
# Слабые пароли: отсутствие политики сложности ## Сценарий Вы проводите аудит безопасности **GreenBasket** — сервиса доставки продуктов на Go. Форма регистрации открыта всем желающим, пароли хешируются с разумной стоимостью, и команда уверена, что подсистема аутентификации надёжна. Ваш заказчик хочет понять реальный риск: что произойдёт, если хотя бы один человек — например, администратор — выберет «удобный» пароль. Проверьте, мешает ли ему это приложение. ## Цель 1. Изучите требования формы регистрации к паролю — длина, состав символов, словарные проверки — и подтвердите класс уязвимости, зарегистрировав заведомо слабый пароль. 2. Словарной атакой на форму входа скомпрометируйте учётную запись администратора. 3. Извлеките флаг из админ-панели. ## Теория Политика сложности паролей — базовый контроль на стороне приложения. Без неё пользователи, включая администраторов, свободно выбирают «удобные» значения: имя сервиса, имя учётки, короткие последовательности, общеупотребительные слова. Хеширование паролей замедляет офлайн-перебор по украденным хешам, но бессильно против онлайн-перебора через саму форму входа: словарная атака выполняется с полной скоростью независимо от стоимости хеша. **Уязвимый паттерн (отсутствие проверки):** ```go // Регистрация принимает любой непустой пароль — требований к длине и составу нет: if password == "" { h.render(w, "register.html", PageData{Title: "Register", Error: "Password is required"}) return } ``` Атака на учётку со слабым паролем сводится к сочетанию известного имени администратора и короткого словаря: общеупотребительные значения и предсказуемые комбинации с именем учётки или сервиса. Если попытки входа ничем не ограничены — а с отсутствием политики сложности это часто соседствует, — весь словарь проходится за секунды. Успех отличается ответом: редирект в приложение вместо сообщения о неверных данных. ## Точка входа атаки * `POST /register` — регистрация, поля `username`, `password`, `fullname`. * `POST /login` — форма входа; цель перебора — `admin`. * `GET /admin` — админ-панель с флагом; доступна только роли администратора. * **Обычный пользователь (разведка интерфейса):** `demo` / `demo`

Похожие лабораторные (4)

другие лабы по этой уязвимости
Обложка лабы: Брутфорс Формы Входа (Нет Rate Limiting) Обложка лабы: Брутфорс Формы Входа (Нет Rate Limiting)
Auth

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

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

+30 XP
Go Pro
Exploit Fix
Обложка лабы: Предсказуемые Токены Сессии (MD5) Обложка лабы: Предсказуемые Токены Сессии (MD5)
Auth

Предсказуемые Токены Сессии (MD5)

Сессионные токены генерируются через MD5(username), что позволяет предсказать токен администратора и захватить его сессию.

+60 XP
Go Pro
Exploit Fix
Обложка лабы: Небезопасный Сброс Пароля (IDOR) Обложка лабы: Небезопасный Сброс Пароля (IDOR)
Auth

Небезопасный Сброс Пароля (IDOR)

Форма сброса пароля принимает user_id из клиента, позволяя атакующему сбросить пароль любого пользователя через IDOR.

+60 XP
Go Pro
Exploit Fix
Обложка лабы: JWT: Подбор слабого секретного ключа Обложка лабы: JWT: Подбор слабого секретного ключа
Auth

JWT: Подбор слабого секретного ключа

Приложение подписывает JWT токеном HMAC-SHA256 со слабым ключом. Подбери секрет и подделай токен администратора.

+60 XP
Go Pro
Exploit Fix