
مختبر قائم على Docker لـ Apache CVE-2021-41773 لاجتياز المسار وتنفيذ الأكواد عن بُعد مع نص استغلال بايثون، مما يوضح تحليل الثغرات واستراتيجيات التخفيف.
يستنسخ هذا المستودع ثغرة أمنية معلنة علنًا وتم تصحيحها في بيئة مختبر Docker خاضعة للتحكم لأغراض تعليمية وبحثية.
البيئة معرّضة للثغرات عن قصد ويجب نشرها فقط في بيئات اختبار معزولة. لا تحاول استغلال الأنظمة دون إذن صريح.
الهدف من هذا المشروع هو توضيح تحليل الثغرات واستغلالها واستراتيجيات التخفيف منها.
تجاوز المسار وتنفيذ التعليمات البرمجية عن بُعد
# 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 خطأً في تطبيع مسار URL. التتابعات المشفرة مثل .%2e (المكافئة لـ ..) لا يتم تنظيفها بشكل صحيح، مما يسمح للمهاجم بـ اجتياز شجرة الدلائل خارج DocumentRoot.
إذا كانت وحدة mod_cgi مفعّلة وتم ضبط الدليل الجذر (/) مع Require all granted، يمكن للمهاجم:
/bin/sh (RCE)exploit.py)لا تبعيات خارجية — يستخدم مكتبة Python القياسية فقط.
تلقائي python exploit.py تحقق من الثغرة + تشغيل id كعرض توضيحي
قراءة ملف python exploit.py -f /etc/shadow قراءة أي ملف عبر RCE
RCE python exploit.py -c "whoami" تنفيذ أمر واحد
شل python exploit.py -i شل تفاعلية زائفة
هدف مخصص python exploit.py -u http://target:8888 استهداف مضيف بعيد
أولاً، نتحقق من أن البيئة معرّضة للثغرة
كما هو متوقع، يُرجع الأمر id قيمة uid=0(root) gid=0(root) groups=0(root)
لنقم بإنشاء شل عكسية :
تم تسجيل الدخول كجذر
كما ترى، هناك خطأ في إعداد /proc/1/environ، لقد حصلنا على كلمة مرور SQL. هذا يكشف أسرارًا مكشوفة بسبب إعداد حاوية غير آمن
باستخدام بيانات الاعتماد المستخرجة، نتصل بقاعدة بيانات MySQL، ونطبع البيانات المخزنة

لا تعِد إنتاج هذه الإعدادات في بيئة إنتاج أبدًا.