
# Laboratorio basato su Docker per Apache CVE-2021-41773: path traversal e sfruttamento RCE con script di exploit in Python, che dimostra l'analisi delle vulnerabilità e le strategie di mitigazione.
Questo repository riproduce una vulnerabilità pubblicamente divulgata e corretta in un ambiente di laboratorio Docker controllato, per scopi educativi e di ricerca.
L'ambiente è intenzionalmente vulnerabile e deve essere distribuito solo in ambienti di test isolati. Non tentare di sfruttare sistemi senza autorizzazione esplicita.
L'obiettivo di questo progetto è dimostrare l'analisi, lo sfruttamento e le strategie di mitigazione delle vulnerabilità.
Path Traversal & Remote Code Execution
# Navigate to the project folder
cd Apache-CVE-2021-41773
# Validate compose syntax
docker compose config
# Start the lab
docker compose up -d --build
# Check that everything is running
docker compose ps
Apache 2.4.49 ha introdotto un bug nella normalizzazione del percorso URL. Sequenze codificate come .%2e (equivalenti a ..) non vengono adeguatamente sanificate, consentendo a un attaccante di attraversare l'albero delle directory oltre la DocumentRoot.
Se mod_cgi è abilitato e la directory radice (/) è configurata con Require all granted, un attaccante può:
/bin/sh (RCE)exploit.py)Nessuna dipendenza esterna — utilizza solo la libreria standard di Python.
Auto python exploit.py Verifica la vulnerabilità + esegue id come demo
Leggi file python exploit.py -f /etc/shadow Legge qualsiasi file tramite RCE
RCE python exploit.py -c "whoami" Esegue un singolo comando
Shell python exploit.py -i Pseudo-shell interattiva
Target personalizzato python exploit.py -u http://target:8888 Punta a un host remoto
Innanzitutto, verifichiamo che l'ambiente sia vulnerabile
Come previsto, il comando restituisce l'id uid=0(root) gid=0(root) groups=0(root)
Creiamo una reverse shell:
Siamo connessi come root
Come puoi vedere, c'è una configurazione errata su /proc/1/environ: abbiamo ottenuto la password SQL.
Questo rivela segreti esposti causati da una configurazione container non sicura.
Utilizzando le credenziali estratte, ci connettiamo al database MySQL e stampiamo i dati memorizzati

Non riprodurre mai queste configurazioni in un ambiente di produzione.