
مختبر قائم على Docker لإعادة إنتاج CVE-2021-41773 (خادم Apache HTTP Server 2.4.49) عبر تجاوز مسار محكوم وكشف الملفات باستخدام PoC مخصص بلغة Python.
إعادة إنتاج CVE-2021-41773، وهي ثغرة اجتياز المسار في Apache HTTP Server 2.4.49.
يستخدم هذا المشروع Docker لإنشاء بيئة ضعيفة ومعزولة، بالإضافة إلى PoC مكتوبة بلغة Python لإثبات كشف ملفات مُتحكَّم فيه.
السلامة: تقبل الـ PoC الأهداف
localhostو127.0.0.1و::1فقط. يجب أن يبقى الاختبار داخل المختبر المعزول.
يوضح هذا المشروع:
يركز العرض على كشف الملفات بدلاً من تنفيذ التعليمات البرمجية عن بُعد.
CVE-2021-41773-Apache-Lab/
│
├── docker/
│ ├── Dockerfile
│ ├── httpd-vulnerable.conf
│ └── secret.txt
│
├── exploit/
│ └── exploit.py
│
├── screenshots/
│ ├── 01-docker-container.png
│ ├── 02-apache-version.png
│ └── 03-successful-exploit.png
│
├── report/
│ └── CVE-2021-41773-Exploit-Report.pdf
│
├── requirements.txt
├── .gitignore
└── README.md
تستخدم الـ PoC مكتبة Python القياسية فقط ولا تتطلب حزم Python تابعة لجهات خارجية.
من المجلد الجذر للمستودع:
docker build -t cve-2021-41773-lab ./docker
docker run --rm --name cve-2021-41773-lab \
-p 127.0.0.1:8080:80 \
cve-2021-41773-lab
أبقِ هذه الطرفية تعمل.
يتم كشف خدمة Apache فقط عبر:
127.0.0.1:8080
في طرفية أخرى:
docker ps
يجب أن تظهر الحاوية:
127.0.0.1:8080->80/tcp
docker exec cve-2021-41773-lab httpd -v
النتيجة المتوقعة:
Server version: Apache/2.4.49 (Unix)
curl http://127.0.0.1:8080/
يجب أن يتم إرجاع صفحة اختبار Apache.
توجد الـ PoC في:
exploit/exploit.py
شغّل:
python3 exploit/exploit.py
الهدف الافتراضي هو:
http://127.0.0.1:8080
ملف الإثبات الافتراضي هو:
/lab/secret.txt
يعرض التشغيل الناجح ما يلي:
[+] Vulnerability reproduced.
[+] Controlled file disclosure confirmed.
ثم تعرض الـ PoC محتويات ملف المختبر المُتحكَّم فيه.
تتحقق الـ PoC أولاً من أن الهدف عنوان محلي:
localhost
127.0.0.1
::1
ثم تُنشئ مساراً يحتوي على مكونات اجتياز مُرمَّزة:
/cgi-bin/.%2e/.%2e/.%2e/.%2e/lab/secret.txt
يتم إرسال الطلب باستخدام وحدة socket القياسية في Python. وهذا يمنح الـ PoC تحكماً مباشراً في مسار طلب HTTP.
يعالج خادم Apache 2.4.49 الضعيف المسار المُعدّ ويعيد محتويات:
/lab/secret.txt
استرجاع هذا الملف يؤكد اجتياز المسار وكشف الملفات المُتحكَّم فيه.
CVE: CVE-2021-41773
المنتج: Apache HTTP Server
الإصدار المتأثر المُوضَّح: 2.4.49
نوع الثغرة: اجتياز المسار / كشف الملفات
CVE-2021-41773 هي ثغرة اجتياز مسار في Apache HTTP Server 2.4.49. يمكن لعنوان URL مُصنَّع بعناية تجاوز قيود المسار المقصودة والسماح بالوصول إلى ملفات خارج الدليل المتوقع.
في ظل تكوينات معينة، يمكن أن تكون للثغرة عواقب أكثر خطورة. يعرض هذا المشروع عمداً كشف ملفات مُتحكَّم فيه في بيئة Docker معزولة.
يتم تخزين لقطات الشاشة التي تم جمعها أثناء الاختبار في:
evidence/
تشمل الأدلة:
التخفيف الأساسي هو ترقية Apache HTTP Server إلى إصدار مُصحَّح.
تشمل الإجراءات الدفاعية الإضافية:
النشرة الأمنية لخادم Apache HTTP: https://httpd.apache.org/security/vulnerabilities_24.html
قاعدة بيانات الثغرات الوطنية NIST: https://nvd.nist.gov/vuln/detail/CVE-2021-41773
النشرة الأمنية CERT-EU: https://cert.europa.eu/publications/security-advisories/2021-054/
هذا المشروع مخصص حصرياً للتعليم الأمني المصرح به والاختبارات المختبرية المُتحكَّم فيها.
تم تصميم بيئة Docker والـ PoC للاختبار المحلي. لا تستخدم الـ PoC ضد أنظمة لا تملكها أو ليس لديك إذن صريح بتقييمها.