CVE-2021-41773 – Apache Path Traversal: отчёт
Краткое описание
- Уязвимость, обнаруженная в Apache HTTP Server 2.4.49, которая в зависимости от конфигурации веб-сервера может раскрывать конфиденциальные файлы системы через атаку Path Traversal
- Path Traversal: злоумышленник может получить доступ к файлам за пределами веб-корня, используя пути, содержащие ../
Информация
- Название уязвимости: CVE-2021-41773
- Затронутые версии: Apache HTTP Server 2.4.49
- Тип уязвимости: Path Traversal
- Наличие официального патча: исправлено в версии 2.4.50 и выше
Настройка лабораторного окружения
- Базовый образ: 'httpd:2.4.49' (DockerHub)
- Способ запуска контейнера: Dockerfile + docker-compose.yml
- Порт: 8080 → подключение к порту 80 контейнера
- Изменение конфигурации Apache: 'Require all granted' (разрешает Path Traversal)
Как запустить окружение
PoC уязвимости
Подробный процесс
- Подготовка директории для задания
- Создание Dockerfile
-> Базовый образ: httpd:2.4.49 (версия с уязвимостью)
-> 'sed -i 's/Require all denied/Require all granted/g' : разрешение Path Traversal и внешнего доступа
- docker-compose.yml
-> Определение Apache
-> Проброс порта 8080 на порт 80 контейнера
-
Запуск docker
-
Выполнение PoC
-> curl http://localhost:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd
-> /etc/passwd содержит конфиденциальную информацию; %2e — это закодированный вариант .., который означает переход в родительский каталог
-> Манипулируя путём, сервер обращается к /etc/passwd и выводит его содержимое
- Результат выполнения
-> Как показано на изображении выше, возможен доступ к конфиденциальным каталогам
URL репозитория, доступного через Fork
https://github.com/JIYUN02/cve-2021-41773
-> Имеется история коммитов