
Docker-Container zum Einrichten einer anfälligen elfinder-Version sowohl auf Nginx- als auch auf Apache-Servern. Kann zum Testen des Schwachstellen-POCs verwendet werden.
Dieses Repository enthält ein Reproduktions-Setup für CVE-2021-23394 (Willkürliche Dateiausführung in elFinder) mittels Docker. Es richtet vier Umgebungen ein, um anfällige und gepatchte Versionen auf Apache und Nginx zu vergleichen.
Das Setup beinhaltet:
8080): elFinder 2.1.57 auf Apache8081): elFinder 2.1.66 auf Apache8082): elFinder 2.1.57 auf Nginx8083): elFinder 2.1.66 auf NginxMachen Sie das Setup-Skript ausführbar (falls noch nicht geschehen):
chmod +x setup_containers.sh
Führen Sie das Setup-Skript aus:
./setup_containers.sh
Dies erstellt die Docker-Images und startet die Container.
Sie können die elFinder-Oberfläche in Ihrem Browser unter folgenden Adressen aufrufen:
Um die Schwachstelle (oder die Behebung) zu überprüfen, verwenden Sie Nuclei mit der entsprechenden Vorlage.
Führen Sie die folgenden Befehle aus (ersetzen Sie path-to-nuclei-templates durch den tatsächlichen Pfad zu Ihrem Vorlagenverzeichnis):
# 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
Alternativ können Sie alle auf einmal testen, indem Sie eine targets.txt-Datei erstellen:
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
Erwartete Ergebnisse:
Um die Container zu stoppen und zu entfernen, können Sie den Bereinigungsbefehl im Skript oder manuell ausführen:
docker rm -f elfinder-apache-vuln elfinder-apache-patched elfinder-nginx-vuln elfinder-nginx-patched