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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-66491 — إضافة جوملا PhocaCommander معرّضة لثغرة اجتياز المسار (Path Traversal) في دالة getSource. | Kitploit
أدوات/GitHubGitHub/toanln-cov/cve-2026-66491
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتأمن الويباختبار الاختراق
GitHubtoanln-cov/cve-2026-66491

CVE-2026-66491

إضافة جوملا PhocaCommander معرّضة لثغرة اجتياز المسار (Path Traversal) في دالة getSource.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

قراءة ملفات تعسفية عبر getSource() في PhocaCommander

PhocaCommander ≤ 6.1.3 — اجتياز مسار للمسؤول المصادق، بدون الحاجة إلى CSRF

CVE CVSS v4.0 CWE-22 Affected Researcher


الملخص

توجد ثغرة قراءة ملفات تعسفية في نقطة محرر الملفات في PhocaCommander. تقوم الدالة getSource() بفك ترميز معامل filename المشفر بـ base64 وتمرره مباشرة إلى file_get_contents() دون أي فحص لاحتواء المسار. يمكن لأي مسؤول مصادق قراءة أي ملف يمكن لعملية خادم الويب الوصول إليه - بما في ذلك الملفات خارج جذر الويب - بمجرد إرسال طلب GET. لا يلزم أي رمز CSRF.

يؤدي استغلال الثغرة إلى تسريب بيانات اعتماد قاعدة بيانات Joomla والمفتاح السري من configuration.php، ويمكن قراءة ملفات النظام مثل /etc/passwd عبر تسلسلات اجتياز المسار (مثل ../../../../etc/passwd).


الإصدارات المتأثرة

المكوّنالمعرّض للثغرةتم الاختبار عليهتم الإصلاح في
PhocaCommander1.0.0 – 6.1.3Joomla 5.4.7 + PhocaCommander 6.1.3 (PHP 8.2 / Apache)6.1.4

تفاصيل الثغرة

المصادقة المطلوبة: جلسة مسؤول (لا يلزم رمز CSRF - طلب GET)

الملف: administrator/components/com_phocacommander/models/phocacommanderedit.php

السبب الجذري

تقوم getSource() بفك ترميز filename من base64 وتربطه مباشرة بـ JPATH_ROOT، ثم تقرأ الملف دون أي فحص لاحتواء المسار:

PHOCACOMMANDEREDIT.PHP — الكود القابل للاستغلال

root@kitploit:~
public function getSource($fileName) {
    $fileName = base64_decode($fileName); // ← attacker-controlled
    $item = new stdClass;
    if (PhocaCommanderHelper::fileExists(JPATH_ROOT . '/' . $fileName)) {
        $item->source = file_get_contents(JPATH_ROOT . '/' . $fileName); // ← no containment check
    }
    return $item;
}

تستخدم fileExists() الدالة is_file(Path::clean($file)). تعمل Path::clean() على توحيد الشرطات المائلة لكنها لا تزيل تسلسلات ../، لذلك تفلت عمليات الاجتياز من جذر الويب دون فحص.

تحتوي قاعدة الكود على getContainedRealPath() في helpers/phocacommander.php والتي تجري فحص احتواء مناسبًا يعتمد على realpath(). تُستدعى بواسطة save() وdownload() لكنها لم تُضف أبدًا إلى getSource(). إضافةً إلى ذلك، يتم إرسال طريقة edit() في المتحكم عبر GET، لذلك لا تنطبق فحوصات رمز CSRF القياسية — تكفي ملفات تعريف ارتباط جلسة مسؤول نشطة لتحفيز قراءة ملفات تعسفية.


إثبات المفهوم

السيناريو 1 — قراءة /etc/passwd عبر اجتياز المسار خارج جذر الويب

1. تسجيل الدخول إلى لوحة تحكم Joomla للمسؤول

قم بالمصادقة عبر صفحة تسجيل دخول المسؤول للحصول على ملف تعريف ارتباط جلسة صالح. لا تتطلب أي صلاحيات إضافية تتجاوز جلسة مسؤول قياسية.

2. قراءة /etc/passwd عبر اجتياز المسار - خارج جذر الويب

أرسل طلب GET التالي مع مسار الاجتياز المشفر بـ base64:

root@kitploit:~
GET /administrator/index.php?option=com_phocacommander&task=phocacommanderedit.edit&filename=Li4vLi4vLi4vLi4vZXRjL3Bhc3N3ZA==
Cookie: [admin session]

filename بعد فك الترميز: Li4vLi4vLi4vLi4vZXRjL3Bhc3N3ZA== → ../../../../etc/passwd

المسار الناتج: /var/www/html/../../../../etc/passwd = /etc/passwd

يعرض المحرر المحتوى الكامل لـ /etc/passwd، مما يؤكد إمكانية القراءة خارج جذر الويب.

الطلب / الاستجابة

طلب واستجابة Burp Suite يعرضان محتوى /etc/passwd كما يظهر في محرر Joomla


الأثر

  1. كشف ملفات النظام — مفاتيح SSH وملفات إعداد التطبيقات المستضافة على نفس الخادم كلها قابلة للوصول (إذا كانت قابلة للقراءة من قبل عملية خادم الويب)
  2. لا يتطلب أي تفاعل — الهجوم عبارة عن طلب GET واحد، لا رمز CSRF، لا إرسال نموذج، لا حاجة لأي تفاعل من الضحية
  3. سلسلة تصعيد الامتيازات — المفتاح السري المسرَّب يتيح تزوير رموز Joomla دون اتصال، مما يفتح سطح هجوم إضافي على الموقع المستهدف

المراجع

  • CVE: https://www.cve.org/CVERecord?id=CVE-2026-66491
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-66491
  • مستودع المطوّر: https://github.com/PhocaDesign/PhocaCommander
تنزيل الأداة