
حاوية دوكر لإعداد نسخة ضعيفة من elfinder على خوادم nginx و apache معًا. يمكن استخدامها لاختبار إثبات المفهوم (POC) للثغرة الأمنية.
يحتوي هذا المستودع على إعداد إعادة إنتاج لـ CVE-2021-23394 (تنفيذ ملفات عشوائية في elFinder) باستخدام Docker. يقوم بإعداد أربع بيئات لمقارنة الإصدارات القابلة للاستغلال والمصححة عبر Apache و Nginx.
يشمل الإعداد:
8080): elFinder 2.1.57 على Apache8081): elFinder 2.1.66 على Apache8082): elFinder 2.1.57 على Nginx8083): elFinder 2.1.66 على Nginxاجعل السكربت القابل للتنفيذ قابلاً للتشغيل (إذا لم يكن كذلك بالفعل):
chmod +x setup_containers.sh
شغّل سكربت الإعداد:
./setup_containers.sh
سيقوم هذا ببناء صور Docker وبدء الحاويات.
يمكنك الوصول إلى واجهة elFinder في متصفحك عبر:
للتحقق من الثغرة (أو الإصلاح)، استخدم Nuclei مع القالب المناسب.
شغّل الأوامر التالية (استبدل path-to-nuclei-templates بالمسار الفعلي لدليل القوالب الخاص بك):
# اختبار Apache القابل للاستغلال (يجب أن يكون قابلاً للاستغلال)
nuclei -t path-to-nuclei-templates/http/cves/2021/CVE-2021-23394.yaml -u http://localhost:8080
# اختبار Apache المصحح (يجب ألا يكون قابلاً للاستغلال)
nuclei -t path-to-nuclei-templates/http/cves/2021/CVE-2021-23394.yaml -u http://localhost:8081
# اختبار Nginx القابل للاستغلال (يجب أن يكون قابلاً للاستغلال)
nuclei -t path-to-nuclei-templates/http/cves/2021/CVE-2021-23394.yaml -u http://localhost:8082
# اختبار Nginx المصحح (يجب ألا يكون قابلاً للاستغلال)
nuclei -t path-to-nuclei-templates/http/cves/2021/CVE-2021-23394.yaml -u http://localhost:8083
بدلاً من ذلك، اختبر الكل مرة واحدة عن طريق إنشاء ملف 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
النتائج المتوقعة:
لإيقاف وإزالة الحاويات، يمكنك تشغيل أمر التنظيف داخل السكربت أو يدويًا:
docker rm -f elfinder-apache-vuln elfinder-apache-patched elfinder-nginx-vuln elfinder-nginx-patched