
Contenitore Docker per configurare una versione vulnerabile di elfinder sia su server nginx che apache. Può essere utilizzato per testare un POC di vulnerabilità.
Questo repository contiene una configurazione di riproduzione per CVE-2021-23394 (Esecuzione arbitraria di file in elFinder) utilizzando Docker. Configura quattro ambienti per confrontare le versioni vulnerabili e corrette su Apache e Nginx.
La configurazione include:
Apache Vulnerabile (Porta 8080): elFinder 2.1.57 su Apache
Apache Corretto (Porta 8081): elFinder 2.1.66 su Apache
Nginx Vulnerabile (Porta 8082): elFinder 2.1.57 su Nginx
Nginx Corretto (Porta 8083): elFinder 2.1.66 su Nginx
Rendi eseguibile lo script di configurazione (se non lo è già):
chmod +x setup_containers.sh
Esegui lo script di configurazione:
./setup_containers.sh
Questo costruirà le immagini Docker e avvierà i container.
Puoi accedere all'interfaccia elFinder nel tuo browser ai seguenti indirizzi:
Per verificare la vulnerabilità (o la correzione), usa Nuclei con il template appropriato.
Esegui i seguenti comandi (sostituisci path-to-nuclei-templates con il percorso effettivo della tua directory dei template):
# Test Apache Vulnerable (should be vulnerable)
nuclei -t path-to-nuclei-templates/http/cves/2021/CVE-2021-23394.yaml -u http://localhost:8080
# Test Apache Patched (should NOT be vulnerable)
nuclei -t path-to-nuclei-templates/http/cves/2021/CVE-2021-23394.yaml -u http://localhost:8081
# Test Nginx Vulnerable (should be vulnerable)
nuclei -t path-to-nuclei-templates/http/cves/2021/CVE-2021-23394.yaml -u http://localhost:8082
# Test Nginx Patched (should NOT be vulnerable)
nuclei -t path-to-nuclei-templates/http/cves/2021/CVE-2021-23394.yaml -u http://localhost:8083
In alternativa, puoi testare tutti insieme creando un file targets.txt:
echo -e "http://localhost:8080\nhttp://localhost:8081\nhttp://localhost:8082\nhttp://localhost:8083" > targets.txt
nuclei -t path-to-nuclei-templates/http/cves/2021/CVE-2021-23394.yaml -l targets.txt
Risultati previsti:
Per fermare e rimuovere i container, puoi eseguire il comando di pulizia all'interno dello script o manualmente:
docker rm -f elfinder-apache-vuln elfinder-apache-patched elfinder-nginx-vuln elfinder-nginx-patched