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

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

Weak Password Policy

Регистрация принимает любой пароль без проверки сложности, что позволяет dictionary attack на аккаунты.

Автор: Hack & Fix
Освоишь: bcrypt/argon2constant-time compareMFA
Легко+30 XP ~20 мин php
CWE-287 · A07:2021 Pro
Обложка: Weak Password Policy Обложка: Weak Password Policy
Задача
# Слабая парольная политика ## Сценарий «Вольтмаркет» — интернет-магазин электроники для радиолюбителей и домашних мастеров. Владелец Семён Колосов пригласил вас на аудит после странного инцидента: в журнале входов он нашёл успешную авторизацию под администратором с незнакомого устройства, хотя пароль никому не передавал. Пароли в компании всегда придумывались «по памяти», и Семён подозревает, что сервер никогда не проверял их сложность. ## Цель 1. Убедитесь, что при регистрации сервер принимает заведомо слабый пароль. 2. Подберите пароль учётной записи `admin` словарным перебором через форму входа. 3. Войдите администратором, выкупите товар «CTF Flag» — флаг отобразится в профиле после оформления заказа. ## Теория Слабая парольная политика — отсутствие на стороне сервера требований к длине и составу пароля. Если приложение при регистрации принимает любую непустую строку, пользователи выбирают короткие и словарные значения, которые реально угадать перебором. Форма входа при этом не ограничивает число неудачных попыток, поэтому словарная атака сводится к последовательной проверке правдоподобных кандидатов по одному. **Уязвимый паттерн:** ```php // VULNERABILITY: нет проверки сложности пароля — принимается любой пароль if (strlen($password) < 1) { ``` Механика атаки по шагам: сначала на собственной регистрации подтверждается, что сложность вообще не контролируется, затем тот же вывод применяется к чужим учётным записям — пароль администратора ищется коротким словарём типичных значений. ## Точка входа атаки `POST /register` — форма регистрации, поля `username`, `password`, `fullname`. `POST /login` — форма входа, поля `username`, `password`. * **Обычный пользователь:** `demo` / `demo` * **Администратор:** `admin` / `???`

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

другие лабы по этой уязвимости
Обложка лабы: Login Bruteforce Обложка лабы: Login Bruteforce
Auth

Login Bruteforce

Эндпоинт логина не ограничивает количество попыток аутентификации, позволяя атакующему перебирать пароли.

+30 XP
PHP Pro
Exploit Fix
Обложка лабы: JWT: Weak Secret Обложка лабы: JWT: Weak Secret
Auth

JWT: Weak Secret

JWT подписан слабым секретом — подберите его через brute-force и подделайте токен администратора.

+30 XP
PHP Pro
Exploit Fix
Обложка лабы: Timing-атака на форму входа (PHP) Обложка лабы: Timing-атака на форму входа (PHP)
Auth

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

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

+60 XP
PHP Pro
Exploit Fix
Обложка лабы: JWT: None Algorithm Attack Обложка лабы: JWT: None Algorithm Attack
Auth

JWT: None Algorithm Attack

Сервер принимает JWT с алгоритмом none — подделайте токен без подписи и получите права администратора.

+60 XP
PHP Pro
Exploit Fix