
Lab Docker didattico per Apache HTTP Server 2.4.49 path traversal e RCE (CVE-2021-41773) con ricerca sulla CVE, exploit PoC, evidenze di test e indicazioni di mitigazione.
⚠️ Solo per uso isolato ed educativo in laboratorio. Questo repository crea un server Apache volutamente vulnerabile. Non eseguirlo mai su un host attivo, di produzione o esposto a Internet.
Progetto di stage Red Team di Team Alpha (ITSOLERA — Offensive Security / Exploit Development per una CVE nota). Il lavoro è suddiviso in sei cartelle di attività così che ciascun membro possa contribuire tramite la propria pull request.
📄 Report finale: 06-final-report/CVE-2021-41773-Final-Report.pdf
Apache 2.4.49 decodifica un punto codificato come %2e dopo il controllo di
normalizzazione del percorso, quindi /files/.%2e/.%2e/.%2e/.%2e/etc/passwd esce dalla document root. Con
mod_cgi abilitato, lo stesso trucco contro /bin/sh consente l'esecuzione di codice da remoto.
| Cartella | Responsabile | Consegna | Stato |
|---|---|---|---|
01-cve-research/ | Fatima Bente Mustafa | Riepilogo CVE, versioni affette, causa principale, CVSS, riferimenti | ✅ Completato |
02-lab-setup/ | Emaar Ejaz | Laboratorio Docker con Apache 2.4.49 vulnerabile + SETUP.md | ✅ Completato |
03-vulnerability-analysis/ | Anum Aamir Sajjad | ANALYSIS.md + evidence-log.txt | ✅ Completato |
04-exploit-poc/ | Noor Saba Basit | cve-2021-41773.py + exploit.sh + logica | ✅ Completato |
05-testing-evidence/ | Sana Tariq | Screenshot, output del terminale, log del server | ✅ Completato |
06-final-report/ | Muhammad Hammad | Report finale compilato (PDF) + mitigazione | ✅ Completato |
Il target vulnerabile si trova in 02-lab-setup/. Dall'interno di quella
cartella:
docker build -t cve-2021-41773-lab:2.4.49 .
docker run -d --name apache-2449-vuln -p 127.0.0.1:8080:80 cve-2021-41773-lab:2.4.49
Consulta 02-lab-setup/SETUP.md per la guida completa alla configurazione,
alla verifica, alla raccolta delle prove e alla risoluzione dei problemi.
Aggiorna ad Apache HTTP Server 2.4.51 o successivo. Come difesa in profondità, mantieni
<Directory /> su Require all denied per impostazione predefinita e concedi l'accesso solo dove necessario.