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

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

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

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

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

Категории

Все категории
Loading categories
CTF_WRITEUPS-TryHackMe-CVE-2021-41773- — CTF_WRITEUPS/TryHackMe /CVE-2021-41773/ | Kitploit
Инструменты/GitHubGitHub/hackedrishi/ctf_writeups-tryhackme-cve-2021-41773-
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьCTFОбучение и ОбразованиеЛаборатории и Практика
GitHubhackedrishi/ctf_writeups-tryhackme-cve-2021-41773-

CTF_WRITEUPS-TryHackMe-CVE-2021-41773-

CTF_WRITEUPS/TryHackMe /CVE-2021-41773/

Репозиторий
71 год назадЕщё не проверено

Популярное

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

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

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

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

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

CTF_WRITEUPS-TryHackMe-CVE-2021-41773-

CTF_WRITEUPS/TryHackMe /CVE-2021-41773/

CVE-2021-41773/42013

Небольшое объяснение ошибки обхода путей Apache и неполного исправления

Task 1: Немного предыстории...

Краткая история

5 октября 2021 года был опубликован CVE, описывающий атаку обхода путей на Apache HTTP Server v2.4.49. Ему был присвоен номер CVE-2021-41773, и он был выпущен со следующим описанием:

Была обнаружена ошибка в изменении, внесенном в нормализацию путей в Apache HTTP Server 2.4.49. Злоумышленник может использовать атаку обхода путей для сопоставления URL с файлами за пределами ожидаемого корневого каталога документов. Если файлы за пределами корневого каталога документов не защищены директивой "require all denied", такие запросы могут быть успешными. Кроме того, эта ошибка может раскрыть исходный код интерпретируемых файлов, таких как CGI-скрипты. Известно, что эта уязвимость эксплуатируется в реальных условиях. Эта проблема затрагивает только Apache 2.4.49, но не более ранние версии.

Давайте разберем это и посмотрим, что это на самом деле значит для нас:

  • Из первой части мы видим, что недавнее изменение выявило уязвимость. Нормализация пути означает, что мы преобразуем заданный путь в некоторую каноническую форму, понятную программному обеспечению, и таким образом сопоставляем его с реальной файловой системой. Это уже наводит на мысль об атаке обхода путей, которая потенциально может прочитать непредназначенные файлы.
  • Следующая часть подтверждает наши подозрения: мы можем использовать атаку обхода путей для чтения ресурсов за пределами предполагаемой области.
  • Мы видим, что требуется очень специфическая конфигурация. Файлы за пределами корневого каталога документов должны быть явно разрешены. Это не конфигурация по умолчанию, поэтому данная эксплойт должен быть бесполезен против большой части серверов Apache (к счастью).
  • Следующая часть говорит о CGI-скриптах, что ошибочно наводит на мысль, что CGI должен быть включен для этой атаки или что путь каким-то образом связан с CGI.
  • Даже если ваша конфигурация напрямую не затрагивается этой ошибкой, вам все равно стоит как можно скорее обновить уязвимые версии.

Много исправлений спустя...

Apache исправил эту ошибку и выпустил v2.4.50. Конец истории, верно? Ну, не совсем. Всего через 2 дня, 7 октября, был выпущен новый CVE, ссылающийся на предыдущий. В нем говорится, что исправление предыдущей атаки обхода путей было неполным, и мы все еще могли совершать обход, если в рассматриваемом пути использовалась директива alias для сопоставления URL с файловой системой. Этому CVE был присвоен номер CVE-2021-42013, с описанием:

Было обнаружено, что исправление для CVE-2021-41773 в Apache HTTP Server 2.4.50 было недостаточным. Злоумышленник может использовать атаку обхода путей для сопоставления URL с файлами за пределами каталогов, настроенных директивами типа Alias. Если файлы за пределами этих каталогов не защищены обычной конфигурацией по умолчанию "require all denied", такие запросы могут быть успешными. Если для этих псевдонимов также включены CGI-скрипты, это может позволить удаленное выполнение кода. Эта проблема затрагивает только Apache 2.4.49 и Apache 2.4.50, но не более ранние версии.

Как и ранее, мы можем узнать несколько вещей:

  • Хотя первый эксплойт предположительно был исправлен, существует другой способ разрешить обход (запомните это для дальнейшего).
  • Теперь мы ограничены директивами алиасов путей.
  • Каталоги за пределами обычных путей все равно требуют явного разрешения.
  • Если CGI включен, то помимо простого раскрытия информации мы можем получить удаленное выполнение кода 😲

Пока мы осмысливаем это безумие, в следующем задании рассмотрим необходимую конфигурацию.

Ответьте на вопросы ниже

  1. Какая версия Apache httpd была изначально уязвима для этого CVE?
  • 2.4.49
  1. Для эксплуатации этой уязвимости требуется необычная неправильная конфигурация (Да/Нет)
  • Да

Task 2 Что такое обход путей (Path Traversal)?

Немного теории

Эксплойт обхода путей — это атака, направленная на доступ к ресурсам, которые обычно недоступны, путем злоупотребления ошибками в разрешении и/или нормализации путей. Обычно мы используем этот тип атаки, перемещаясь (также известный как обход) назад за пределы предполагаемого корня с помощью синтаксиса ...

Нормализация? Что это?

Обычно при указании пути для поиска файла кодом требуется абсолютный путь. Назовем его каноническим путем. Если вместо него задан относительный путь, он должен быть нормализован до канонической формы, чтобы библиотеки ОС, использующие этот путь, могли найти соответствующий ресурс. Это, конечно, упрощение, но суть остается.

В целом существуют платформенные библиотеки для выполнения этой нормализации, но в C/C++ мы обычно всё делаем сами. Хотя это может дать некоторую гибкость, это также может легко привести к ошибкам, если наша реализация не идеальна.

Нормализация URL

HTTP-сервер должен преобразовать URL в канонический путь в файловой системе, чтобы найти правильный файл для обслуживания. Хотя существуют некоторые фильтры, предотвращающие обход корневого каталога документов, некоторые случаи могут быть легко упущены. В данном случае эксплойт использует не только URL-кодирование (мы к этому еще вернемся), но и ошибку в нормализации путей модуля Alias (предположительно).

Отступление о URL-кодировании

Определено в RFC 3986, раздел 2, URL-кодирование — это схема, используемая для кодирования специальных или зарезервированных символов в URL. Например, пробелы в URL кодируются как символ + (в частности, в параметрах запроса). Если мы хотим закодировать фактический плюс, мы должны закодировать его с помощью так называемого "процентного кодирования". Это просто включает добавление шестнадцатеричного кода символа US-ASCII с префиксом %. В нашем примере символ + может быть закодирован как %2B.

Любой символ может быть URL-закодирован, и URL, которые полностью закодированы, функционально эквивалентны незакодированной версии. Из RFC: Если два URI отличаются только регистром шестнадцатеричных цифр, используемых в процентно-закодированных октетах, они эквивалентны.

Итак, что произошло с Apache?

Недавнее изменение в модуле нормализации путей в сервере Apache позволило специально созданному URL обойти фильтры и выйти за пределы корневого каталога документов, что позволяет произвольное чтение файлов в системе, если конфигурация это допускает. Более того, если модуль CGI включен, возможно и произвольное выполнение файлов!

Ответьте на вопросы ниже

  1. Эксплойт обхода путей (выберите лучший ответ):

A) Включает произвольные удаленные файлы для обработки на сервере. B) Включает произвольные локальные файлы для обработки на сервере. C) Позволяет серверу раскрыть произвольные файлы. D) Ничего из вышеперечисленного.

  • C
  1. URL-закодируйте символ .
  • %2E
  1. Что декодируется из этого фрагмента URL: %%32%65 ?
  • %2E

Task 3 Ладно, ладно; Gib Hax!

Взлом Apache ради забавы

Итак, теория окончена, давайте перейдем к эксплуатации этой ошибки. Во-первых, нам нужна уязвимая версия Apache. К счастью, у нас есть Docker для этого :)```
user@machine$ docker pull httpd:2.4.49 2.4.49: Pulling from library/httpd 07aded7c29c6: Already exists 05bb40c8f148: Already exists 0827b74117da: Already exists 35a526fdcc7d: Pull complete 59fed288cd32: Pull complete Digest: sha256:dcba0d12e2362fb0c50ec524ae8aa1cca4a4ba7216617a57e7bbca20767e79cc Status: Downloaded newer image for httpd:2.4.49 docker.io/library/httpd:2.4.49

**Конфигурация**
Скачать инструмент