مختبر Apache mod_lua مُحزَّم في Docker مع إثبات مفهوم بلغة Python يعيد إنتاج تجاوز سعة المخزن المؤقت في حدود multipart الخاص بالثغرة CVE-2021-44790 لإجراء اختبارات دفاعية محلية وأبحاث.
يحتوي هذا المستودع على مختبر محلي صغير وأدوات إثبات مفهوم لإعادة إنتاج ثغرة Apache HTTP Server المعروفة باسم CVE-2021-44790.
CVE-2021-44790 هي ثغرة في Apache HTTP Server 2.4.51/2.4.52 تتعلق بمحلل الطلبات متعددة الأجزاء mod_lua. يمكن أن يؤدي حد multipart مُصمَّم بعناية إلى إحداث حالة تجاوز سعة المخزن المؤقت (buffer overflow) في الخادم عندما تتم معالجة الحد بواسطة معالج Lua.
هذا المختبر مخصص للتعلم والاختبار الدفاعي وإعادة الإنتاج المحلي المُتحكَّم به في بيئة غير إنتاجية فقط.
CVE-2021-44790.py — أداة PoC / مساعد استغلال بلغة Python لاختبار الثغرة ضد هدف.cve-2021-44790-lab/ — بيئة مختبر Apache + Lua مُعبَّأة في Docker تعيد إنتاج السلوك المُعرَّض للثغرة.
Dockerfilehttpd.conflua/upload.luaمن جذر المستودع:
docker build -t cve-2021-44790-lab ./cve-2021-44790-lab
docker run --rm -it -p 80:80 cve-2021-44790-lab
يكشف المختبر عن نقطة نهاية رفع بسيطة على:
http://127.0.0.1/upload
يُمكِّن إعداد Apache معالج mod_lua المُعرَّض للثغرة ويضبط حدًا كبيرًا لحجم جسم الطلب بحيث يمكن إرسال حِمل multipart إلى الخادم.
شغِّل سكربت Python ضد الهدف:
python CVE-2021-44790.py --help
مثال:
python CVE-2021-44790.py --url http://127.0.0.1/upload --boundary-size 9000 --payload-size 10000000
يدعم السكربت خيارات لـ:
المواد الواردة في هذا المستودع مُقدَّمة لأغراض البحث الأمني القانوني والاختبار المعتمد على المختبرات وتعليم الثغرات. المؤلف والمساهمون غير مسؤولين عن إساءة استخدام الكود أو أي نشاط تخريبي يُنفَّذ به.