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

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

Слабая Парольная Политика

Регистрация принимает любой пароль без проверки сложности. Пароль администратора — 'admin'.

Автор: Hack & Fix
Освоишь: bcrypt/argon2constant-time compareMFA
Легко+30 XP ~20 мин nodejs
CWE-287 · A07:2021 Pro
Обложка: Слабая Парольная Политика Обложка: Слабая Парольная Политика
Задача
## Сценарий Вы — security-инженер на предрелизном аудите **Vendly** — нового маркетплейса электроники на Express. Команда только что выкатила MVP с регистрацией и каталогом и уверяет: «пароли надёжно хешируются, беспокоиться не о чем». Руководство хочет независимую проверку того, как площадка управляет паролями, до открытия публичной регистрации. ## Цель 1. Зарегистрируйте тестовый аккаунт и определите, какую парольную политику применяет сервер. 2. Опираясь на сделанные выводы, войдите в учётную запись администратора. 3. Купите товар **CTF Flag** и получите флаг в профиле. ## Теория Слабые пароли — дверь, которую не закрывает даже криптостойкое хеширование: хеш честно сохранит и предсказуемое значение, но подбор по словарю всё равно увенчается успехом. Уязвимость здесь двойная: сервер принимает любой непустой пароль при регистрации, а встроенная привилегированная учётка создаётся со слабым паролем по умолчанию. **Уязвимый паттерн:** ```javascript // Единственная проверка пароля при регистрации: if (password === '') { return res.render('register.html', { error: '...' }); } ``` Проверяется лишь непустота строки: однобуквенный пароль проходит наравне со стойким. А раз политика отсутствует для всех, то и пароль администратора по умолчанию, скорее всего, задан по принципу предсказуемого значения — его можно угадать без усилий. ## Точка входа атаки `POST /register` — форма регистрации с полями `username`, `password`, `fullname`; вход — `POST /login` с полями `username` и `password`. * **Обычный пользователь:** `demo` / `demo` * **Целевая учётная запись:** `admin` / `???`

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

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

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

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

+60 XP
Node.js Pro
Exploit Fix
Обложка лабы: Timing-атака на форму входа Обложка лабы: Timing-атака на форму входа
Auth

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

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

+60 XP
Node.js Pro
Exploit Fix
Обложка лабы: JWT alg:none — обход аутентификации без подписи Обложка лабы: JWT alg:none — обход аутентификации без подписи
Auth

JWT alg:none — обход аутентификации без подписи

Сервер принимает JWT с alg:none и доверяет роли из claims — подделайте токен для получения прав администратора в SecureShop.

+60 XP
Node.js Pro
Exploit Fix
Обложка лабы: JWT: подбор слабого секрета и подделка admin-токена Обложка лабы: JWT: подбор слабого секрета и подделка admin-токена
Auth

JWT: подбор слабого секрета и подделка admin-токена

Сервер подписывает JWT слабым секретом из словаря. Получив один валидный токен, атакующий за секунды подбирает секрет по словарю офлайн, подписывает новый токен с role=admin и забирает флаг.

+60 XP
Node.js Pro
Exploit Fix