Sploitus

Exploit for PoC-Apache-CVE-2021-41773-Infrastructure-LAB

kitploit · 2026-08-27

Exploit Code

MARKDOWN90 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ISABBII-POC-APACHE-CVE-2021-41773-INFRASTRUCTURE-LAB
# Apache CVE-2021-41773 — Лабораторный Docker PoC

## Уведомление о безопасности

Этот репозиторий воспроизводит публично раскрытую и исправленную уязвимость в контролируемой лабораторной среде Docker в образовательных и исследовательских целях.

Среда намеренно уязвима и должна разворачиваться только в изолированных тестовых средах. Не пытайтесь эксплуатировать системы без явного разрешения.

Цель этого проекта — продемонстрировать анализ уязвимостей, эксплуатацию и стратегии смягчения последствий.

> **Обход пути и удалённое выполнение кода**

![image](https://assets.kitploit.com/production/public/readmes/36720/5184d44a8f810ee1595f75b5196d096dfb057715ad1a1e30b20fcc42ac455838.png) ![image](https://assets.kitploit.com/production/public/readmes/36720/a67e700a5465caeb51cd2da6af3b113b174ab8bf956cbd8daed4bbc3a200f7e1.png)

## Начало работы

root@kitploit:~
    
    
    # Navigate to the project folder
    cd Apache-CVE-2021-41773
    
    # Validate compose syntax
    docker compose config
    
    # Start the lab
    docker compose up -d --build
    
    # Check that everything is running
    docker compose ps
    

### Техническое объяснение

В Apache 2.4.49 появилась ошибка в **нормализации URL-путей**. Закодированные последовательности, такие как `.%2e` (эквивалент `..`), не обрабатываются должным образом, что позволяет атакующему **перемещаться по дереву каталогов** за пределами `DocumentRoot`.

Если включён `mod_cgi` и корневой каталог (`/`) настроен с `Require all granted`, атакующий может:

  1. **Читать произвольные файлы** в системе (обход пути)
  2. **Выполнять команды** через интерпретатор `/bin/sh` (RCE)



## Эксплойт-скрипт (`exploit.py`)

Без внешних зависимостей — используется только стандартная библиотека Python.

**Авто** `python exploit.py` Проверка уязвимости + запуск `id` в качестве демонстрации

**Чтение файла** `python exploit.py -f /etc/shadow` Чтение любого файла через RCE

**RCE** `python exploit.py -c "whoami"` Выполнение одной команды

**Оболочка** `python exploit.py -i` Интерактивная псевдооболочка

**Произвольная цель** `python exploit.py -u http://target:8888` Нацеливание на удалённый хост

## PoC

Сначала проверим, что среда уязвима.

![image](https://assets.kitploit.com/production/public/readmes/36720/367e1fd6bc60ea0e4828d4335706892803a71d9b070487e5dbf48765c4557cde.png)

Как и ожидалось, команда возвращает id uid=0(root) gid=0(root) groups=0(root)

Создадим reverse shell:

![image](https://assets.kitploit.com/production/public/readmes/36720/4faad0b53e98c1a2637ca8fec5320863309671f6b0a191cff93945a36816a19b.png)

Мы вошли как root

![image](https://assets.kitploit.com/production/public/readmes/36720/4faad0b53e98c1a2637ca8fec5320863309671f6b0a191cff93945a36816a19b.png)

Как видите, в /proc/1/environ имеется ошибка конфигурации — мы получили SQL-пароль Это выявляет раскрытые секреты, вызванные небезопасной конфигурацией контейнера

Используя извлечённые учётные данные, мы подключаемся к базе данных MySQL и выводим хранящиеся данные ![image](https://assets.kitploit.com/production/public/readmes/36720/e511ada637d6bd4cffe1e931b29b301e581c9be86867ca0a9c00b210352bd50e.png)

## 📚 Ссылки

  * Рекомендации Apache
  * NVD — CVE-2021-41773
  * MITRE ATT&CK — T1190 (Эксплуатация публично доступного приложения)
  * Блог — Обход пути в Apache 2.4.49



* * *

> Никогда не воспроизводите эти конфигурации в производственной среде.