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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/lukasz-rybak/cve-2025-67875
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقالتعلم والتعليم
GitHublukasz-rybak/cve-2025-67875

CVE-2025-67875

CVE-2025-67875 - ChurchCRM يحتوي على ثغرة XSS مخزنة عبر تعيين خصائص الشخص مما يؤدي إلى اختطاف جلسة المسؤول

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-67875: ChurchCRM يحتوي على ثغرة XSS مخزنة عبر تعيين خصائص الشخص تؤدي إلى اختطاف جلسة المسؤول

نظرة عامة

الحقلالتفاصيل
معرف CVECVE-2025-67875
الخطورةعالية
الاستشارة الأمنيةعرض الاستشارة
اكتشفهاLukasz Rybak

المنتجات المتأثرة

  • ChurchCRM/CRM

التفاصيل

ملخص

توجد ثغرة حرجة في تصعيد الامتيازات في ChurchCRM الإصدار 6.3.0 والإصدارات الأقدم. يمكن لمستخدم موثّق يتمتع بصلاحيات محددة من المستوى المتوسط ("تحرير السجلات" و"إدارة الخصائص والتصنيفات") حقن حمولة برمجة نصية عبر المواقع (XSS) مخزنة في ملف تعريف المسؤول. يتم تنفيذ الحمولة عندما يعرض المسؤول صفحة ملفه الشخصي، مما يسمح للمهاجم باختطاف جلسة المسؤول، وتنفيذ إجراءات إدارية، وتحقيق استيلاء كامل على الحساب.

هذه الثغرة هي مزيج من ثغرتين منفصلتين: مرجع كائن مباشر غير آمن (IDOR) يسمح لأي مستخدم بعرض ملف تعريف أي مستخدم آخر، وثغرة في التحكم بالوصول المكسور تسمح لمستخدم بصلاحيات تحرير عامة بتعديل خصائص سجل أي مستخدم آخر.

التفاصيل

سلسلة الهجوم هي كما يلي:

  1. IDOR في PersonView.php: لا يوجد فحص ترخيص في بداية PersonView.php. يمكن لأي مستخدم موثّق عرض صفحة ملف تعريف أي مستخدم آخر (مثل PersonView.php?PersonID=1 للمسؤول) بمجرد معرفة معرّفه.

  2. التحكم بالوصول المكسور في PropertyAssign.php: وظيفة "تعيين خاصية جديدة"، التي يمكن الوصول إليها من صفحة PersonView.php الخاصة بمستخدم آخر، توجّه المستخدم إلى PropertyAssign.php. يتحقق هذا السكربت بشكل صحيح من امتلاك المستخدم للصلاحية العامة isEditRecordsEnabled()، لكنه يفشل في إجراء فحص ترخيص على مستوى الكائن للتحقق مما إذا كان المستخدم مخوّلًا لتعديل PersonID المحدد في عنوان URL. يسمح هذا لمستخدم لديه صلاحية "تحرير السجلات" بتعديل خصائص أي شخص في النظام، بما في ذلك المسؤول.

  3. ناقل XSS المخزنة: يمكن للمهاجم استغلال هاتين الثغرتين للانتقال إلى صفحة ملف تعريف المسؤول واستخدام نموذج "تعيين خاصية جديدة" لحفظ حمولة XSS خبيثة في سجل المسؤول. لا يتم تطهير حقل Value للخصائص النصية بشكل صحيح عند الإدخال (يتم تطبيق strip_tags فقط، وهو لا يزيل معالجات الأحداث) ولا يتم ترميزه عند الإخراج، مما يؤدي إلى XSS مخزنة.

    • معالجة الإدخال (src/PropertyAssign.php): يحفظ قيمة الخاصية بعد تطبيق strip_tags() فقط، مما يسمح بسمات معالجات الأحداث مثل onerror.
    • نقطة الإخراج القابلة للاستغلال (src/PersonView.php): تعرض قيمة الخاصية المخزنة مباشرةً في HTML بدون htmlspecialchars()، مما يتسبب في تنفيذ الحمولة.
      root@kitploit:~
      // src/PersonView.php, line ~722
      <td><?= $r2p_Value ?></td> // Vulnerable: Raw output
      

إثبات المفهوم (PoC)

يوضح إثبات المفهوم هذا كيف يمكن لمستخدم بصلاحيات محددة من المستوى المتوسط حقن حمولة XSS مخزنة في ملف تعريف المسؤول الرئيسي.

المتطلبات الأساسية:

  • يمتلك المهاجم حسابًا مفعّلًا بصلاحيتين محددتين:
    1. Edit Records
    2. Manage Properties and Classifications

السيناريو:

  1. تسجيل الدخول كمهاجم: قم بتسجيل الدخول كمستخدم بالصلاحيات المذكورة أعلاه.
image
  1. استهداف المسؤول: انتقل مباشرةً إلى صفحة ملف تعريف المسؤول، والتي تكون عادةً PersonID=1.
    root@kitploit:~
    http://localhost:8101/PersonView.php?PersonID=1
    
    (يتم منح الوصول بسبب ثغرة IDOR في PersonView.php).
image
  1. حقن الحمولة:
    • في صفحة ملف تعريف المسؤول، مرر لأسفل إلى تبويب الخصائص المعينة (Assigned Properties).
    • في نموذج "تعيين خاصية جديدة" (Assign a New Property)، اختر الخاصية النصية مثل ("Test"). (النموذج مرئي بسبب صلاحية "تحرير السجلات").
    • في حقل النص القيمة (Value) الذي يظهر، أدخل حمولة XSS التالية:
      root@kitploit:~
    • انقر على زر "تعيين" (Assign). يتم الآن تخزين الحمولة في سجل المسؤول. (التعيين ممكن بسبب ثغرة التحكم بالوصول المكسور في PropertyAssign.php).
image
image
  1. تفعيل الهجوم:
    • يمكن للمهاجم الآن انتظار قيام المسؤول بتسجيل الدخول وعرض ملفه الشخصي.
    • عندما ينتقل المسؤول إلى صفحة ملفه الشخصي (PersonView.php?PersonID=1)، سيتم تنفيذ الحمولة فورًا، وستظهر نافذة تنبيه. يمكن للمهاجم استخدام حمولة أكثر تقدمًا لسرقة ملف تعريف ارتباط الجلسة الخاص بالمسؤول.
image
image

التأثير

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

الإسناد

تم الإبلاغ بواسطة: Łukasz Rybak

المراجع

  • https://github.com/ChurchCRM/CRM/security/advisories/GHSA-fcw7-mmfh-7vjm

إخلاء المسؤولية

تم الكشف عن هذه الثغرة (CVE) بشكل مسؤول وفقًا لممارسات الكشف المنسق عن الثغرات الأمنية. المعلومات المقدمة هنا هي لأغراض تعليمية ودفاعية فقط.

تنزيل الأداة