
Лаборатория на базе Docker для воспроизведения CVE-2021-41773 (Apache HTTP Server 2.4.49) через контролируемый обход пути и раскрытие файлов с использованием специально написанного Python PoC.
Воспроизведение CVE-2021-41773 — уязвимости обхода пути в Apache HTTP Server 2.4.49.
Этот проект использует Docker для создания изолированной уязвимой среды и Python PoC для демонстрации контролируемого раскрытия файлов.
Безопасность: PoC принимает только цели
localhost,127.0.0.1или::1. Тестирование должно оставаться в пределах изолированной лаборатории.
Этот проект демонстрирует:
Демонстрация сосредоточена на раскрытии файлов, а не на удалённом выполнении кода.
CVE-2021-41773-Apache-Lab/
│
├── docker/
│ ├── Dockerfile
│ ├── httpd-vulnerable.conf
│ └── secret.txt
│
├── exploit/
│ └── exploit.py
│
├── screenshots/
│ ├── 01-docker-container.png
│ ├── 02-apache-version.png
│ └── 03-successful-exploit.png
│
├── report/
│ └── CVE-2021-41773-Exploit-Report.pdf
│
├── requirements.txt
├── .gitignore
└── README.md
PoC использует только стандартную библиотеку Python и не требует сторонних Python-пакетов.
Из корня репозитория:
docker build -t cve-2021-41773-lab ./docker
docker run --rm --name cve-2021-41773-lab \
-p 127.0.0.1:8080:80 \
cve-2021-41773-lab
Не закрывайте этот терминал.
Сервис Apache доступен только через:
127.0.0.1:8080
В другом терминале:
docker ps
Контейнер должен отображать:
127.0.0.1:8080->80/tcp
docker exec cve-2021-41773-lab httpd -v
Ожидаемый результат:
Server version: Apache/2.4.49 (Unix)
curl http://127.0.0.1:8080/
Должна возвращаться тестовая страница Apache.
PoC находится по пути:
exploit/exploit.py
Запуск:
python3 exploit/exploit.py
Цель по умолчанию:
http://127.0.0.1:8080
Файл-доказательство по умолчанию:
/lab/secret.txt
При успешном запуске выводится:
[+] Vulnerability reproduced.
[+] Controlled file disclosure confirmed.
Затем PoC отображает содержимое контролируемого файла лаборатории.
Сначала PoC проверяет, что цель является локальным адресом:
localhost
127.0.0.1
::1
Затем он формирует путь, содержащий закодированные компоненты обхода:
/cgi-bin/.%2e/.%2e/.%2e/.%2e/lab/secret.txt
Запрос отправляется с помощью стандартного модуля socket Python. Это даёт PoC прямой контроль над путём HTTP-запроса.
Уязвимый сервер Apache 2.4.49 обрабатывает созданный путь и возвращает содержимое:
/lab/secret.txt
Получение этого файла подтверждает обход пути и контролируемое раскрытие файлов.
CVE: CVE-2021-41773
Продукт: Apache HTTP Server
Продемонстрированная уязвимая версия: 2.4.49
Тип уязвимости: Обход пути / Раскрытие файлов
CVE-2021-41773 — это уязвимость обхода пути в Apache HTTP Server 2.4.49. Специально созданный URL может обойти предполагаемые ограничения пути и позволить доступ к файлам за пределами ожидаемого каталога.
При определённых конфигурациях уязвимость может иметь более серьёзные последствия. Этот проект намеренно демонстрирует контролируемое раскрытие файлов в изолированной среде Docker.
Скриншоты, собранные во время тестирования, хранятся в:
evidence/
Доказательства включают:
Основная мера — обновить Apache HTTP Server до исправленной версии.
Дополнительные защитные меры включают:
Рекомендации по безопасности Apache HTTP Server: https://httpd.apache.org/security/vulnerabilities_24.html
Национальная база данных уязвимостей NIST: https://nvd.nist.gov/vuln/detail/CVE-2021-41773
Рекомендации по безопасности CERT-EU: https://cert.europa.eu/publications/security-advisories/2021-054/
Этот проект предназначен исключительно для авторизованного обучения в области безопасности и контролируемого лабораторного тестирования.
Среда Docker и PoC предназначены для локального тестирования. Не используйте PoC против систем, которыми вы не владеете или на оценку которых у вас нет явного разрешения.