
مختبر ثلاثي الطبقات معبأ في حاويات يعيد إنتاج تسريب ملف تعريف ارتباط urllib3 الخاص بـ CVE-2023-43804 عبر عمليات إعادة التوجيه عبر الأصول، مع نص استغلال والتحقق من التصحيح.
يتضمن المستودع بيئة مختبرية كاملة من ثلاث طبقات ومعبأة بالكامل في حاويات، وهي مخصصة لعرض واستغلال والتحقق من الإصلاحات الخاصة بـ CVE-2023-43804 (تسريب ملفات تعريف الارتباط في urllib3 الذي يحدث أثناء عمليات إعادة التوجيه عبر الأصول المختلفة).
يتم تنسيق المختبر باستخدام Docker Compose ويتكون من ثلاث خدمات معزولة تتواصل عبر شبكة جسر داخلية:
victim_client: حاوية مبنية على Python تنفذ سكريبت إعادة الإنتاج والاستغلال (exploit.py).target_app: تطبيق ويب مبني على Flask يحاكي خادم هدف مصاب بثغرة، مما يؤدي إلى إعادة توجيه HTTP 302 عبر الأصول المختلفة إلى أصل خارجي.attacker_app: خادم تسجيل مبني على Flask مصمم لالتقاط طلبات HTTP الواردة واستخراج الترويسات المسربة.git clone [https://github.com/deepanshu-khurana/cve-2023-43804-lab.git](https://github.com/deepanshu-khurana/cve-2023-43804-lab.git)
cd cve-2023-43804-lab
docker compose up -d --build
docker compose up -d
docker compose down --volumes
CVE-2023-43804)urllib3< 1.26.17 أو < 2.0.5urllib3 في إزالة ترويسات المصادقة الحساسة (مثل Cookie) عند اتباع عمليات إعادة توجيه HTTP 302 عبر أصول مختلفة، مما سمح لنقاط إعادة التوجيه غير الموثوقة باعتراض رموز الجلسات الحساسة.urllib3 داخل حاوية العميل:docker exec -it victim_client pip install urllib3==1.26.16
docker exec -it victim_client python3 -u /lab/exploit.py
"status": "EXFILTRATED" إلى جانب رمز الجلسة المسرب.docker logs attacker_app ترويسة ملف تعريف الارتباط الحساسة التي تم التقاطها.للتحقق من التصحيح بعد ملاحظة الاستغلال:
urllib3 داخل حاوية العميل إلى الإصدار المصحح:docker exec -it victim_client pip install urllib3==1.26.17
docker exec -it victim_client python3 -u /lab/exploit.py
"status": "SECURE", "stolen_cookie": "None / Stripped".attacker_app أن الطلب الوارد يحتوي على Leaked Cookie Header: None.requirements.txt لفرض الإصدارات الآمنة:urllib3>=1.26.17
remove_headers_on_redirect في تهيئات Retry المخصصة إذا كنت تحتفظ ببيئات تشغيل قديمة.victim_client، target_app، attacker_app) كما تم تعيينها بواسطة Docker Compose. استخدم docker ps للتحقق من أسماء الحاويات النشطة.5000 و 5001 غير مشغولة بخدمات محلية أخرى قبل تشغيل حزمة Docker.عند تشغيل المختبر على الإصدار المصاب urllib3==1.26.16، يتم اعتراض ملف تعريف الارتباط الحساس للمصادقة عبر عمليات إعادة التوجيه بين الأصول المختلفة ويتم تسجيله بنجاح بواسطة خادم المهاجم.
exploit.py الحالة "status": "EXFILTRATED" إلى جانب رمز الجلسة المسرب، مؤكداً بمخرجات سجل attacker_app.بعد ترقية urllib3 إلى الإصدار المصحح (1.26.17)، تقوم المكتبة تلقائياً بإزالة ترويسة Cookie الحساسة أثناء عمليات إعادة التوجيه بين الأصول المختلفة.
ترقية الحزمة إلى الإصدار المصحح:

urllib3 داخل victim_client عبر pip install urllib3==1.26.17.مخرجات العميل الآمنة والسجلات المُزالة:

exploit.py الحالة "status": "SECURE" مع "stolen_cookie": "None / Stripped"، مؤكداً بسجل الخادم الذي يعرض Leaked Cookie Header: None.