Курс повышения квалификации

Практика

Два локальных стенда для самостоятельной практики после лекции: веб-приложение Juice Shop (SQL-инъекция и смена контекста) и DVWA (SQL Injection, Command Injection, XSS). Оба запускаются только штатными wrapper-скриптами как изолированные Compose-проекты; наружу публикуется только loopback 127.0.0.1.

Какой стенд выбрать

Стенды рассчитаны на ограниченную локальную практику только после успешного preflight и при обязательном штатном cleanup. Каждый проект использует закреплённые образы, внутреннюю сеть без egress и отдельный минимальный loopback-прокси.

DVWA

Новое · 3 темы

SQL Injection, OS Command Injection, Reflected XSS — три классические уязвимости на одном стенде с пошаговыми заданиями и ожидаемым результатом на каждом шаге.

Подробнее и скачать задание ↓

Juice Shop

Из лекции · SQLi

Тот же стенд, что использовался на занятии (модуль «Инструменты»): смена контекста в форме входа через ' OR true--. Уже готовые PowerShell-скрипты запуска и остановки.

Подробнее ↓

DVWA — SQL Injection, Command Injection, XSS

Канонический трёхсервисный Compose-стенд использует официальный DVWA, одноразовую MariaDB и loopback-прокси по точным digest. Preflight запрещает плавающие теги, автоматический pull, занятый порт и неподдерживаемый Docker Engine.

Канонический запуск · Windows
& .\pentest\lab\dvwa-preflight.ps1 & .\pentest\lab\dvwa-start.ps1 # практика только на http://127.0.0.1:8000/ & .\pentest\lab\dvwa-stop.ps1 # Обязательный результат: CLEANUP OK; иначе STOP.

Открыть: http://127.0.0.1:8000/ · логин admin / пароль password. Если stop-wrapper не вывел CLEANUP OK, действует STOP: не продолжать и не удалять чужие Docker-объекты вручную.

Compose · preflight · start · stop

Что внутри задания
  • Развёртывание: только digest-pinned Compose и штатные preflight/start/stop wrappers
  • SQL Injection: 4 шага с точным ожидаемым выводом
  • Command Injection: получение RCE от имени www-data
  • Reflected XSS: синтетический alert-маркер без доступа к cookies/storage
  • Таблица CWE / OWASP Top 10:2025, чек-лист для отчёта

Скачать задание (Markdown) ↓

Только localhost

Сам DVWA и БД не публикуют host-порты; 127.0.0.1:8000 открывает только минимальный proxy. Внутренняя сеть не имеет egress. Не меняйте проверенный Compose и не сканируйте ничего за пределами стенда.

Juice Shop — стенд из лекции

Канонический Compose-стенд использует только предзагруженные digest-pinned образы и --pull never. Preflight сначала требует Docker Engine ≥28, проверяет возможности Compose/config, точные digest, свободный порт и отсутствие объектов проекта. Лишь после PREFLIGHT OK минимальный proxy публикует 127.0.0.1:3000; сам Juice Shop остаётся во внутренней сети без egress.

& .\pentest\lab\preflight-juice-shop-lab.ps1 & .\pentest\lab\start-juice-shop-lab.ps1 # только после PREFLIGHT OK: http://127.0.0.1:3000/ & .\pentest\lab\stop-juice-shop-lab.ps1 # обязательный результат: CLEANUP OK

Задание: Account → Login, поле email — ' OR true--, пароль — любая непустая строка. После смены контекста на administrator — остановиться, не выгружать данные и не копировать токен. Разбор: CWE-89, OWASP A05:2025 Injection.

README стенда · Compose · preflight · start · stop

Как оформить результат

Используйте тот же шаблон находки, что и в памятке курса: название, граница, наблюдение, минимальные шаги, доказательство, классификация CWE/OWASP, исправление, retest.

Открыть шаблон находки в памятке →