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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-21546 — أداة استغلال آلية وقالب كشف لثغرة CVE-2024-21546، وهي ثغرة تنفيذ أوامر عن بُعد (RCE) غير مصادق عليها في UniSharp Laravel Filemanager، مع تقنيات تجاوز جدار الحماية (WAF) وقشرة تفاعلية. | Kitploit
أدوات/GitHubGitHub/digitalsurgn/cve-2024-21546
الاستطلاعماسحات الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبأمن الويبتطوير الحمولات
GitHubdigitalsurgn/cve-2024-21546

CVE-2024-21546

أداة استغلال آلية وقالب كشف لثغرة CVE-2024-21546، وهي ثغرة تنفيذ أوامر عن بُعد (RCE) غير مصادق عليها في UniSharp Laravel Filemanager، مع تقنيات تجاوز جدار الحماية (WAF) وقشرة تفاعلية.

عرض المستودع
منذ 10س 39دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

UniSharp Laravel Filemanager ثغرة تنفيذ الأوامر عن بُعد غير المصادق عليها (CVE-2024-21546)

يحتوي هذا المستودع على أدوات تقييم أمني، وقوالب كشف، ومجموعة أدوات استغلال آلية لتحديد واستغلال تنفيذ الأوامر عن بُعد غير المصادق عليه (RCE) في التطبيقات التي تستخدم حزمة UniSharp/laravel-filemanager (الإصدارات < 2.9.1).


📑 جدول المحتويات

  • 1. نظرة عامة على الثغرة
  • 2. تحليل السبب الجذري
  • 3. قالب كشف Nuclei (laravel-filemanager.yaml)
    • لماذا تفشل القوالب الافتراضية في المواقع المترجمة
    • مواصفات القالب المُعاد إنشاؤه
    • تشغيل فحص Nuclei
  • 4. مجموعة أدوات الاستغلال الآلي (cve_2024_21546_rce.py)
    • قدرات الاستغلال
    • الاستخدام والمعاملات
    • أمثلة
  • 5. إرشادات المعالجة

1. نظرة عامة على الثغرة

تنبع الثغرة من شرطين مجتمعين:

  1. وصول غير مصادق عليه للمسارات: يسجّل التطبيق المضيف مسارات /laravel-filemanager دون تطبيق وسيط 'auth' أو 'web'.
  2. تجاوز التحقق من الامتداد بالنقطة اللاحقة: يفشل مُتحقق الرفع في تنظيف أحرف النقاط اللاحقة (.) بشكل صحيح، مما يسمح للمهاجمين بتجاوز قوائم حظر الملفات القابلة للتنفيذ ووضع نصوص PHP في التخزين العام.

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

أ. خلل المُتحقق من النقطة اللاحقة (LfmUploadValidator.php)

في الإصدارات السابقة لـ v2.9.1، كان LfmUploadValidator.php يتحقق من امتدادات الملفات مقابل قائمة الحظر باستخدام:

root@kitploit:~
public function extensionIsNotExcutable($unallowed_extensions)
{
    $extension = strtolower($this->file->getClientOriginalExtension());
    if (in_array($extension, $unallowed_extensions)) {
        throw new \Exception('File extension is not allowed.');
    }
    return $this;
}

عندما يرفع المهاجم ملفًا باسم poc.php.:

  • يستخرج getClientOriginalExtension() من Symfony الأحرف التي تلي النقطة الأخيرة.
  • نظرًا لأن اسم الملف ينتهي بنقطة، فإن getClientOriginalExtension() يُقيَّم إلى "" (سلسلة فارغة).
  • يُقيَّم الفحص in_array("", ['php', 'html']) إلى false، متجاوزًا حظر الامتداد.

ب. الحل بدون امتداد وسلسلة إعادة التسمية

على أنظمة Windows ومحركات تخزين محددة، يتم حفظ الملف كتجزئة بدون امتداد (<hash>). يستغل الاستغلال وحدة تحكم إعادة التسمية في LFM (GET /laravel-filemanager/rename?file=<hash>&new_name=runner.php) لإعادة تسمية الحمولة المرفوعة إلى ملف .php نشط، مما يمنح تنفيذًا فوريًا عبر الويب تحت /storage/app/public/file-manager-files/items/runner.php.


3. قالب كشف Nuclei (laravel-filemanager.yaml)

لماذا تفشل القوالب الافتراضية في المواقع المترجمة

اعتمد القالب المجتمعي العلوي (http/exposed-panels/laravel-filemanager.yaml) (https://github.com/projectdiscovery/nuclei-templates/blob/main/http/exposed-panels/laravel-filemanager.yaml) على مُطابق سلسلة إنجليزية ثابتة:

root@kitploit:~
matchers:
  - type: word
    words:
      - "Laravel FileManager" # Fails on localized deployments or non english versions

عندما تكون التطبيقات مترجمة (مثل العربية أو الفرنسية أو الصينية)، لا تكون السلسلة الإنجليزية موجودة في نص HTML، مما يسبب نتائج سلبية خاطئة.

مواصفات القالب المُعاد إنشاؤه

يكتشف القالب المُحدَّث اللوحة من خلال مطابقة مسارات الأصول الثابتة للمورّد وإجراءات نموذج الرفع:

root@kitploit:~
id: laravel-filemanager

info:
  name: Laravel File Manager - Panel Detect
  author: digitalsurgn
  severity: critical
  description: Laravel File Manager panel was detected.
  reference:
    - https://github.com/UniSharp/laravel-filemanager
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N
    cwe-id: CWE-200
  metadata:
    max-request: 1
  tags: panel,laravel,filemanager,fileupload,intrusive

http:
  - method: GET
    path:
      - "{{BaseURL}}/laravel-filemanager?type=Files"

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "vendor/laravel-filemanager"
          - "laravel-filemanager/upload"
        condition: or

      - type: status
        status:
          - 200

تشغيل فحص Nuclei

root@kitploit:~
nuclei -u https://target.com/ -t laravel-filemanager.yaml

4. مجموعة أدوات الاستغلال الآلي (cve_2024_21546_rce.py)

تعمل أداة Python المستقلة (cve_2024_21546_rce.py) على أتمتة الاستغلال غير المصادق عليه من البداية إلى النهاية مع مراوغة WAF مدمجة ونظافة ذاتية التنظيف.

قدرات الاستغلال

  • تفاوض تلقائي للبروتوكول والمنفذ: يكتشف تلقائيًا ما إذا كان الهدف يستخدم HTTP أو HTTPS ويدعم المنافذ المخصصة غير القياسية.
  • التحقق من الوصول قبل الطيران: يؤكد أن /laravel-filemanager قابل للوصول دون مصادقة قبل محاولة الاستغلال.
  • تتبع الملفات الديناميكي: يلتقط لقطات قبل/بعد لقوائم الدليل (jsonitems) لتحديد التجزئة المرفوعة دون الاعتماد على أسماء مجلدات أو ملفات ثابتة.
  • مراوغة WAF: يستخدم وسوم PHP القصيرة (<?=)، واستدعاء الدوال الديناميكي (('pas'.'sthru'))، ورؤوس X-Cmd المشفرة بـ Base64 لتجاوز قواعد الفحص.
  • وضع الصدفة التفاعلي: يدعم جلسات صدفة تفاعلية مستمرة (--interactive).
  • تنظيف تلقائي بدون بصمة: يحذف تلقائيًا القشرة الويب الملقاة بعد كل تنفيذ أمر.

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

root@kitploit:~
python3 cve_2024_21546_rce.py [OPTIONS]

أمثلة

1. الوضع التفاعلي (يطلب الهدف والمنفذ والأمر)

root@kitploit:~
python3 cve_2024_21546_rce.py

2. تنفيذ أمر واحد (سطر الأوامر)

root@kitploit:~
python3 cve_2024_21546_rce.py -t xyz.com -c "whoami"

3. منفذ مخصص غير قياسي مع صدفة تفاعلية

root@kitploit:~
python3 cve_2024_21546_rce.py -t 10.10.10.50 -p 8080 --interactive

5. إرشادات المعالجة

  1. ترقية الحزمة: حدّث unisharp/laravel-filemanager إلى الإصدار 2.9.1 أو أحدث عبر Composer:
    root@kitploit:~
    composer update unisharp/laravel-filemanager
    
  2. فرض وسيط المصادقة: تأكد من حماية جميع مسارات filemanager بالمصادقة في config/lfm.php:
    root@kitploit:~
    'middlewares' => ['web', 'auth'],
    
  3. تقييد التخزين العام: قم بتكوين قواعد خادم الويب لرفض تنفيذ نصوص .php في أدلة الرفع العامة (مثل /storage/).
تنزيل الأداة
المقياسالتفاصيل
اسم الثغرةUniSharp Laravel Filemanager رفع ملفات غير مقيد يؤدي إلى تنفيذ أوامر عن بُعد
معرف CVECVE-2024-21546
المكوّن المتأثرunisharp/laravel-filemanager (< 2.9.1)
نقطة الضعف الشائعةCWE-94 (حقن الكود) / CWE-434 (رفع غير مقيد)
الخطورةحرجة (CVSS 9.8)
متجه الهجومHTTP عن بُعد / غير مصادق عليه
العلمالمعاملالوصف
-t, --target<host>نطاق الهدف أو عنوان IP (مثل example.com أو 192.168.1.50).
-p, --port<port>منفذ الهدف إذا كان مختلفًا عن 80/443 القياسي (مثل 8080, 8443).
--schemehttp / httpsتحديد بروتوكول الاتصال صراحةً (الافتراضي: اكتشاف تلقائي).
-c, --cmd<command>أمر واحد للتنفيذ (مثل whoami, id, ipconfig).
-i, --interactiveعلمتشغيل صدفة تنفيذ أوامر تفاعلية.
-d, --dir<path>دليل عمل LFM المستهدف (الافتراضي: /items).