CVE-2021-41773 – Rapporto Path Traversal di Apache
Riepilogo
- Vulnerabilità trovata nella versione 2.4.49 di Apache HTTP Server che, a seconda della configurazione del server web, può esporre file sensibili del sistema tramite un attacco di Path Traversal
- Path Traversal: un attaccante può accedere a file al di fuori della radice web utilizzando percorsi che includono ../
- Nome della vulnerabilità: CVE-2021-41773
- Versione interessata: Apache HTTP Server 2.4.49
- Tipo di vulnerabilità: Path Traversal
- Patch ufficiale: risolta dalla versione 2.4.50 in poi
Configurazione dell'ambiente di laboratorio
- Immagine di base: 'httpd:2.4.49' (DockerHub)
- Modalità di avvio del contenitore: Dockerfile + docker-compose.yml
- Porta di esecuzione: 8080 → mappata sulla porta 80 del contenitore
- Modifica configurazione Apache: impostato 'Require all granted' (per abilitare Path Traversal)
Come eseguire l'ambiente
Proof of Concept (PoC) della vulnerabilità
Procedimento dettagliato
- Esecuzione della directory di progetto
- Creazione del Dockerfile
-> Immagine di base: httpd:2.4.49 (versione vulnerabile)
-> 'sed -i 's/Require all denied/Require all granted/g' : abilita Path Traversal e accesso esterno
- docker-compose.yml
-> Definizione di Apache
-> Mappatura della porta 8080 alla porta 80 del contenitore
-
Esecuzione di docker
-
Esecuzione del PoC
-> curl http://localhost:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd
-> /etc/passwd contiene informazioni sensibili; %2e è la codifica di .. che rappresenta il comando per spostarsi nella directory superiore
-> Manipolando il percorso, il server accede a /etc/passwd e lo stampa
- Risultato dell'esecuzione
-> Come mostrato nell'immagine sopra, è possibile accedere a directory sensibili
URL del repository accessibile tramite fork
https://github.com/JIYUN02/cve-2021-41773
-> Esiste storico dei commit