Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
moodle-grades-feedback-idor — Moodle 5.2.3 - عالي - عن بُعد - IDOR - core_grades_get_feedback يتخطى فحوصات المجموعات المنفصلة | Kitploit
أدوات/GitHubGitHub/abraxas/moodle-grades-feedback-idor
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتالمحاكاة الافتراضية للأمانأمن الويباختبار الاختراقمختبرات وتدريب عملي
GitHub
abraxas/moodle-grades-feedback-idor

moodle-grades-feedback-idor

Moodle 5.2.3 - عالي - عن بُعد - IDOR - core_grades_get_feedback يتخطى فحوصات المجموعات المنفصلة

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - moodle-grades-feedback-idor

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  moodle-grades-feedback-idor

moodle-grades-feedback-idor

Moodle LMS 5.2.3 - Moodle

الفئة: IDOR الوصول: عن بُعد

core_grades_get_feedback لا يزال يستدعي فقط require_capability('gradereport/grader:view'). اكتسبت خدمات الويب الأخرى للدرجات groups_user_groups_visible / groups_group_visible بعد MSA-26-0016 / MDL-88667. أما خدمة AJAX هذه فلم تفعل. يعود JSON محتويًا على feedbacktext وfullname وpicture وأول حقل هوية.

معلّم غير مُحرِّر في مجموعات منفصلة، بدون accessallgroups، يرسل userid طالب آخر ويقرأ ملاحظات تلك المجموعة.

المعرّفلا يوجد CVE بعد
CWECWE-863 / CWE-200
CVSSمتوسط: 4.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
المنتجMoodle
المتأثر5.2.3 وسم v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
المصادقةمعلّم غير مُحرِّر لديه gradereport/grader:view، بدون moodle/site:accessallgroups. المقرر في مجموعات منفصلة.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

ما يمكن للمهاجم فعله

الكاتب: معلّم غير مُحرِّر مسجَّل في مقرر بمجموعات منفصلة، في المجموعة A فقط، لديه صلاحية عرض الدرجات وبدون access-all-groups. يختار userid لطالب آخر مسجَّل (أعداد صحيحة متتالية) ويستدعي خدمة AJAX. ليس RCE. ليس LPE. ليس كتابة درجة.

الصلاحيةالطريقة / الهدفالاستطلاع / السلامة / التوافرمُثبت مختبريًا أو مُستنتج
قراءة ملاحظات درجات مجموعة أخرىPOST /lib/ajax/service.php?sesskey= core_grades_get_feedback {courseid, userid, itemid}استطلاعمُثبت مختبريًا. HTTP 200، error=false، feedbacktext يحتوي على MOODLE-GRADES-FEEDBACK-IDOR-WITNESS
قراءة حقل هوية ذلك الطالب واسم العرضنفس الاستجابة additionalfield / fullname / pictureاستطلاعمُثبت مختبريًا. [email protected]، fullname=Student Bravo
تجربة قيم userid المتتالية في نفس المقررنفس الطريقة، معرّفات مُخمَّنةاستطلاعمُستنتج. استخدم المختبر معرّف المجموعة B المُهيَّأ
سرد المجموعة B عبر المُحدِّد الشقيقcore_grades_get_gradable_users {courseid, groupid=B}لا ينطبقمُثبت مختبريًا مغلق. cannotaccessgroup
الطالب يستدعي نفس خدمة الملاحظاتدور الطالب، نفس الوسائطلا ينطبقمُثبت مختبريًا مغلق. nopermissions
ملاحظات نفس المجموعة (طالب في المجموعة A)استدعاء المعلّم للطالب Alphaاستطلاع (مقصود)مُثبت مختبريًا مسموح. HTTP 200، error=false
PHP RCE / OS LPE / كتابة درجةلا ينطبقلا ينطبقمغلق. هذه البقايا هي قراءة للملاحظات وحقول الملف الشخصي

Moodle الافتراضي بدون مجموعات منفصلة، أو معلّم لديه بالفعل moodle/site:accessallgroups، ليس هذه البقايا. المعلّمون المُحرِّرون الذين لديهم هذه الصلاحية يرون كل المجموعات بالفعل.

بقايا نفس الإصدار: Blackboard img file read، enrol_database SQLi، hidden grade items.

كيف وجدتها

ثبّتُّ moodle/moodle v5.2.3 بعد MSA-26-0042/0043. أغلق MSA-26-0016 فحوصات المجموعات في خدمات ويب أخرى للدرجات. لم يكن get_feedback.php ضمن تلك المجموعة. تم تحصين واجهة المُصحِّح. أما خدمة AJAX هذه فلم تُحصَّن.

المنعطفات الخاطئة المسجَّلة بالفعل: اعتبار إخفاق get_gradable_users الشقيق القصة كاملة (ذلك بالفعل يرمي cannotaccessgroup)؛ تسمية هذا كتابة درجة لأن الحمولة تسمّي itemid (الخدمة قراءة)؛ الطالب كمهاجم (nopermissions). صدفة عكسية. مسرح.

المختبر

Moodle مباشر v5.2.3 على php:8.3-cli + MariaDB 11.4. التهيئة تبني مقررًا بمجموعات منفصلة، معلّم في المجموعة A فقط، طالب B في المجموعة B فقط، CAP_PREVENT على moodle/site:accessallgroups، وعنصر درجة يدوي ملاحظاته هي الشاهد. how=live.

Compose يربط ../../vendors/moodle/src كـ /opt/moodle-pin (المسار نسبي إلى lab/docker-compose.yml). استنسخ moodle/moodle وسم v5.2.3 إلى ذلك المسار، أو وجّه الحجم إلى نسختك المستنسخة. شجرة Moodle ليست في هذه الحزمة.

python3 moodle-grades-feedback-idor-Abraxas-Labs.py

أو

cd lab
./run.sh

استهدف فقط http://127.0.0.1:19580. مشروع Compose moodle-grades-feedback-idor. تُفكَّك الحزمة بعد التشغيل.

SUCCESS moodle-grades-feedback-idor how=live pin=v5.2.3 teacher-role=teacher accessallgroups=no groupmode=1 feedback-has-witness=yes [email protected] sibling-group-b=cannotaccessgroup student-call=nopermissions MOODLE-GRADES-FEEDBACK-IDOR-WITNESS

الإصلاح

بعد validate_context / require_capability، حمّل المقرر والمستخدم الهدف، ثم ارفض ما لم يكن groups_user_groups_visible($course, $userid) والمستخدم الهدف مسجَّلًا. نفس الشكل الذي في gradereport_user وcore_grades_get_gradable_users بعد MDL-88667.

المراجع

  • github.com/moodle/moodle وسم v5.2.3
  • get_feedback.php
  • الشقيق يرفض بالفعل المجموعة الأخرى: get_gradable_users.php
  • قريب مُرقَّع (ليس هذه الخدمة): MSA-26-0016 / MDL-88667
  • نفس الإصدار: moodle-blackboard-img · moodle-enrol-database-sqli · moodle-grades-gradeitems
  • CWE-863

الترخيص

GNU Affero GPL v3.0. انظر LICENSE. مختبر loopback فقط. لا ضمان.

تنزيل الأداة