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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
portabilis-ieducar-user-type-privilege-escalation — إثبات المفهوم لاستغلال الثغرة الأمنية الموصوفة في CVE-2025-11554، والتي تتعلق بإمكانية تصعيد الامتيازات عبر طلبات عشوائية إلى نقطة نهاية تغيير أنواع المستخدمين في برنامج i-Educar. | Kitploit
أدوات/GitHubGitHub/m3m0o/portabilis-ieducar-user-type-privilege-escalation
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراق
GitHubm3m0o/portabilis-ieducar-user-type-privilege-escalation

portabilis-ieducar-user-type-privilege-escalation

إثبات المفهوم لاستغلال الثغرة الأمنية الموصوفة في CVE-2025-11554، والتي تتعلق بإمكانية تصعيد الامتيازات عبر طلبات عشوائية إلى نقطة نهاية تغيير أنواع المستخدمين في برنامج i-Educar.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
1منذ 10 أشهرلم تتم المراجعة بعد

Portabilis i-Educar >= 2.1.13 تصعيد الامتيازات عبر طلب تعسفي إلى نقطة نهاية تغيير نوع المستخدم

إثبات المفهوم لاستغلال الثغرة الموضحة في CVE-2025-11554، والتي تتعلق بإمكانية تصعيد الامتيازات أثناء الطلبات التعسفية إلى نقاط نهاية أنواع المستخدمين في برنامج i-Educar.

الوصف

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

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

لإثبات الثغرة، سنحاكي مسار هجوم يمكن استخدامه في سيناريو استغلال حقيقي. أولاً، لدينا المستخدم Usuário sem Privilégios، المرتبط بنوع المستخدم Baixíssimo.

مستخدم بدون صلاحيات

لا يمتلك نوع المستخدم Baixíssimo أي صلاحيات مرتبطة به ويتم تعيينه لأدنى مستوى وصول، وهو Biblioteca، بمستوى 8.

نوع مستخدم بدون صلاحيات

لأغراض هذا العرض التوضيحي، يمكننا ملاحظة أن صلاحيات تعديل أنواع المستخدمين معطلة لهذا الدور، مما يعني أن المستخدمين المرتبطين به لا ينبغي أن يكونوا قادرين على عرض أو إنشاء/تعديل أو حذف أنواع المستخدمين.

صلاحيات نوع المستخدم للعرض والتعديل والحذف لأنواع المستخدمين

عند تسجيل الدخول باسم Usuário sem Privilégios، يمكننا التأكد من عدم تعيين أي صلاحيات، حيث لا تتوفر له أي أقسام.

تسجيل الدخول كمستخدم بدون صلاحيات

الخطوة الأولى في عملية تصعيد الامتيازات هي تحديد نوع المستخدم المعين للمستخدم. في الاستجابات المختلفة للطلبات التي تُرجع مستندات HTML معروضة من التطبيق، يمكن العثور على هذه المعلومات في متغير dataLayer، الموجود داخل عنصر script الأول في المستند. يمكننا التحقق من هذه المعلومات من خلال الوصول إلى الصفحة الرئيسية للتطبيق، على سبيل المثال. في هذا العرض التوضيحي، سيتم استخدام Burp Suite لتحليل الطلبات ومعالجتها.

التحقق من طبقة بيانات المستخدم

بعد تحديد نوع المستخدم المرتبط بالمستخدم الحالي، الخطوة التالية هي تحديد معرّفه المخزن في قاعدة البيانات. لتحقيق ذلك، يجب استخدام نقطة النهاية /usuarios/tipos/<cod_tipo_usuario>. نظرًا لأن معرّفات أنواع المستخدمين رقمية ومتسلسلة، فمن الممكن تعداد جميع أنواع المستخدمين المخزنة حتى يتم العثور على النوع المرتبط بالمستخدم الحالي.

نوع المستخدم المحدد بالرقم 1، على سبيل المثال، هو نوع المستخدم الإداري، Administrador، افتراضيًا.

التحقق من نوع المستخدم بالمعرّف 1

في استجابة التطبيق، يمكننا رؤية الصلاحيات المرتبطة بنوع المستخدم في كائن processes. يتم تحديد كل قسم محدد بمعرّف رقمي فريد، ويتم تحديد مستوى وصول نوع المستخدم إلى ذلك القسم بالأرقام 0، 1، 2، أو 3:

  1. لا يُسمح بأي إجراءات.
  2. يمكن فقط عرض المعلومات في القسم.
  3. يمكن عرض وإنشاء سجلات جديدة وتعديل السجلات الموجودة في القسم.
  4. يمكن عرض وإنشاء سجلات جديدة وتعديل وحذف السجلات الموجودة في القسم.

يمكننا ملاحظة أن نوع المستخدم الإداري لديه مستوى وصول 3 لجميع الأقسام.

التحقق من صلاحيات نوع المستخدم بالمعرّف 1

عند طلب نوع المستخدم بالمعرّف 2، نرى أنه يتوافق مع نوع المستخدم المرتبط بالمستخدم الحالي. هذا النوع من المستخدمين لديه مستوى وصول 0 لجميع الأقسام.

التحقق من نوع المستخدم بالمعرّف 2

التحقق من صلاحيات نوع المستخدم بالمعرّف 2

مع أخذ كل هذا في الاعتبار، يمكننا المتابعة مع تصعيد الامتيازات. للقيام بذلك، يجب إرسال طلب POST إلى نفس نقطة النهاية، يحتوي على معرّف نوع المستخدم المطابق لمعرّف نوع المستخدم المرتبط بالمستخدم الحالي. يجب أن يتضمن نص الطلب المعاملات _method, name, level, description, و processes. ليست جميع القيم المطلوبة مفهومة فورًا، ولكن نظرًا لأن هذا مشروع مفتوح المصدر، يمكن اكتشاف البنية الصحيحة للطلب بسهولة من خلال مراجعة الكود أو الاختبار اليدوي على نسخة محلية.

في الطلب أدناه، نقوم بتعديل مستوى الوصول لجميع الأقسام إلى أقصى وصول (3) وتغيير نوع المستخدم من Biblioteca إلى Poli-institucional (معامل level مضبوط على القيمة 1). وهذا يعني أن المستخدم سيحصل على حق الوصول إلى جميع المؤسسات المسجلة، وليس فقط المؤسسة المرتبطة به أثناء إنشائه.

تعديل صلاحيات نوع المستخدم بالمعرّف 2

بعد ذلك، عند إعادة تحميل الصفحة الرئيسية، يمكننا التأكد من أن المستخدم الذي كان بدون صلاحيات سابقًا لديه الآن جميع الامتيازات المتاحة في سياق التطبيق، الممنوحة بشكل تعسفي.

اكتمال تصعيد الامتيازات

الكود القابل للاستغلال

يمكن العثور على مسارات نقاط النهاية القابلة للاستغلال في ملف routes/web.php.

ملف web.php

يمكن العثور على الطرق القابلة للاستغلال المستخدمة بواسطة هذه المسارات في ملف app/Http/Controllers/AccessLevelController.php. لا تقوم هذه الطرق بإجراء فحص للصلاحيات على المستخدم الطالب قبل تنفيذ الإجراءات المطلوبة على أنواع المستخدمين.

ملف AccessLevelController.php

ملف AccessLevelController.php

التأثير

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

تنزيل الأداة