Знакомый убил два дня на ручную настройку PHP, MySQL и Apache, чтобы запустить DVWA. Потом случайно снёс конфиг и начал заново. Один файл
docker-compose.yml решает ту же задачу за три минуты. Без виртуальных машин, без VirtualBox, без возни с зависимостями.Суть проста: поднимаем три уязвимых приложения в Docker-контейнерах, каждое закрывает свой пласт веб-безопасности.
• DVWA — классика на PHP/MySQL. SQL-инъекции, XSS, command injection, загрузка файлов. Три уровня сложности на каждую уязвимость. Вводите
' OR 1=1 -- на Low — работает. Переключаете на Medium — уже нет. Код фильтрации виден прямо в интерфейсе — разбирайтесь и обходите.• OWASP Juice Shop — современный магазин на Node.js и Angular со 100+ задачами. Broken Access Control, сломанная аутентификация, мисконфиги — всё из OWASP Top 10. Встроенный scoreboard отслеживает прогресс, но его ещё нужно найти. Это, кстати, первый челлендж.
• crAPI — чистый API-пентест без фронтенда. Работа через Burp Suite или
curl. BOLA, манипуляции с JWT, сломанная авторизация — всё из OWASP API Security Top 10. API-тестирование сейчас в каждом втором пентест-проекте, так что навык не академический.Вместе эти три приложения покрывают примерно 80% того, что встречается на реальных проектах.
➡️Что нужно для старта: любой ноутбук с 8 ГБ RAM и 10 ГБ свободного места. ОС — без разницы. Три контейнера съедают 2–3 ГБ оперативки.
Важный момент: в
docker-compose.yml порты обязательно привязывайте к 127.0.0.1. Без этого уязвимые приложения будут видны из локальной сети, а может и из интернета. Это не паранойя — это базовая гигиена.Запуск — одна команда:
docker compose up -d. Первый раз Docker скачает ~2 ГБ образов, дальше старт занимает секунды. Остановка: docker compose down. Сломали что-то? docker compose down -v и поднимаете с нуля — чистый стенд за минуту.🎇С чего начать практику:
1. В DVWA выставьте уровень Low и проэксплуатируйте SQL Injection. Потом переключите на Medium — payload перестанет работать. Разберите код фильтра и найдите обход.
2. В Juice Shop откройте DevTools (F12), покопайтесь в JS-файлах и найдите scoreboard. Оттуда — задачи от одной до шести звёзд.
3. В crAPI зарегистрируйтесь, найдите эндпоинт с ID и подставьте чужой. Получили чужие данные? Поздравляю — это BOLA.
Готовый
docker-compose.yml, пошаговые инструкции и разбор первых атак — в полной статье.https://codeby.net/threads/domashnyaya-laboratoriya-dlya-veb-pentesta-na-docker.95465/
