Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
moodle-grades-gradeitems — Moodle 5.2.3 - उच्च - रिमोट - IDOR - core_grades_get_gradeitems छिपे हुए ग्रेड आइटम सूचीबद्ध करता है | Kitploit
उपकरण/GitHubGitHub/abraxas/moodle-grades-gradeitems
भेद्यता विश्लेषणवेब एप्लिकेशन शोषणएपीआई सुरक्षा परीक्षणजानकारी एकत्र करनावेब सुरक्षापेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubabraxas/moodle-grades-gradeitems

moodle-grades-gradeitems

Moodle 5.2.3 - उच्च - रिमोट - IDOR - core_grades_get_gradeitems छिपे हुए ग्रेड आइटम सूचीबद्ध करता है

रिपॉजिटरी देखें
103 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Abraxas Labs - moodle-grades-gradeitems

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

moodle-grades-gradeitems

Moodle LMS 5.2.3 - Moodle

Class: IDOR Reach: Remote

core_grades_get_gradeitems ajax के साथ-साथ आधिकारिक मोबाइल सेवा भी है, जिसमें services.php में कोई capabilities key नहीं है। validate_context ही एकमात्र गेट है। फिर grade_item::fetch_all कोर्स के हर आइटम को डंप कर देता है। array_filter GRADE_TYPE_NONE, category आइटम, और course आइटम को हटा देता है। Hidden उस फ़िल्टर में नहीं है। सहोदर core_grades_get_grade_tree पहले से ही moodle/grade:viewall की मांग करता है।

एक नामांकित छात्र {courseid} POST करता है और उन hidden grade items के नाम प्राप्त कर लेता है जिन्हें छात्र gradebook UI अभी भी छिपाता है।

IDअभी तक कोई CVE नहीं
CWECWE-862 / CWE-200
CVSSMedium: 4.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
ProductMoodle
Affected5.2.3 tag v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
Authनामांकित छात्र (moodle/grade:view; viewall / viewhidden का अभाव)
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1

हमलावर क्या कर सकता है

Writer: कोर्स में नामांकित छात्र। वे {courseid} के साथ AJAX सेवा को POST करते हैं। प्रतिक्रिया में नाम, IDs, और categories होते हैं। रिटर्न स्कीमा में कोई स्कोर नहीं है। RCE नहीं। LPE नहीं। स्कोर राइट नहीं।

PrivilegeMethod / sinkRecon / integrity / availabilityLab-proven या inferred
Hidden grade-item का नाम, id, और category पढ़ेंPOST /lib/ajax/service.php?sesskey= core_grades_get_gradeitems {courseid}ReconLab-proven। HTTP 200, नामों में MOODLE-GRADES-GRADEITEMS-WITNESS शामिल
Visible grade-item का नाम, id, और category पढ़ेंवही प्रतिक्रियाRecon (शिक्षकों के लिए अभिप्रेत)Lab-proven। नामों में Visible Lab Assignment शामिल
आधिकारिक मोबाइल सेवा पर वही कैटलॉगवही class, services में MOODLE_OFFICIAL_MOBILE_SERVICE शामिलReconservices.php से inferred। Lab ने AJAX का उपयोग किया।
छात्र जिन कोर्सों में प्रवेश कर सकता है, उनके लिए क्रमिक courseid मानों को वॉक करेंवही method, अनुमानित idsReconInferred। Lab ने seeded course id 2 का उपयोग किया
छात्र gradebook UI में hidden आइटम देखेंGET /grade/report/user/index.php?id=n/aLab-proven closed। hidden-in-ui=False, visible-in-ui=True
सत्र के बिना कॉल करेंdummy sesskey के साथ AJAXn/aLab-proven closed। servicerequireslogin
नामांकित नहीं ऐसे लॉग-इन उपयोगकर्ता के रूप में कॉल करेंoutsider AJAX, वही courseidn/aLab-proven closed। requireloginerror
अन्य छात्रों के स्कोर पढ़ें या ग्रेड लिखेंn/an/aClosed। रिटर्न keys id, itemname, category हैं
PHP RCE / OS LPEn/an/aClosed। यह अवशेष एक कैटलॉग रीड है

एक शिक्षक या प्रबंधक जिसके पास पहले से moodle/grade:viewall है, वह पहले से ही कैटलॉग देख सकता है। Guest / unauthenticated कॉलर्स को अभी भी course context की आवश्यकता होती है।

वही pin अवशेष: Blackboard img file read, enrol_database SQLi, grades feedback IDOR।

मैंने इसे कैसे खोजा

MSA-26-0042/0043 के बाद मैंने moodle/moodle v5.2.3 को pin किया। Grade web services उस MSA विंडो में थीं। get_gradeitems.php में अभी भी कोई require_capability नहीं है। छात्र UI पहले से ही आइटम छिपाता था। AJAX कैटलॉग नहीं छिपाता था।

पहले से दर्ज गलत रास्ते: unauth AJAX 200 को लीक मानना (body servicerequireslogin है); इसे score IDOR कहना क्योंकि method नाम में grade है (स्कीमा केवल नाम है); get_grade_tree को वही अवशेष होने की अपेक्षा करना (यह पहले से ही viewall की मांग करता है)। एक reverse shell। नाटक।

Lab

php:8.3-apache + MariaDB 11.4 पर लाइव Moodle v5.2.3। Seed labstudent को नामांकित करता है, laboutsider को कोर्स से बाहर रखता है, और एक visible manual आइटम तथा एक hidden आइटम बनाता है जिसका नाम witness है। run.sh एक स्थानीय pin या git clone --depth 1 --branch v5.2.3 कॉपी करता है। Moodle ट्री इस पैक में नहीं है।

python3 moodle-grades-gradeitems-Abraxas-Labs.py

या

cd lab
./run.sh

लक्ष्य केवल http://127.0.0.1:19590। Compose प्रोजेक्ट moodle-grades-gradeitems। रन के बाद स्टैक टियर डाउन हो जाता है।

SUCCESS moodle-grades-gradeitems student-ajax=200 hidden-in-ajax=yes hidden-in-ui=no visible-in-ajax=yes visible-in-ui=yes outsider-error=yes unauth-error=yes MOODLE-GRADES-GRADEITEMS-WITNESS

समाधान

validate_context के बाद, get_grade_tree के समान cap की मांग करें: require_capability('moodle/grade:viewall', $context)। साथ ही hidden आइटम हटा दें जब तक कॉलर के पास moodle/grade:viewhidden न हो। एक Behat/PHPUnit केस जोड़ें: नामांकित छात्र, hidden manual आइटम, core_grades_get_gradeitems को उस आइटम को छोड़ना चाहिए (या 403)। छात्र gradebook UI पहले से ही इसे छिपाता है।

संदर्भ

  • github.com/moodle/moodle tag v5.2.3
  • get_gradeitems.php
  • सहोदर पहले से ही cap की मांग करता है: get_grade_tree.php
  • Service registration: services.php (core_grades_get_gradeitems, कोई capabilities नहीं)
  • वही pin: moodle-blackboard-img · moodle-enrol-database-sqli · moodle-grades-feedback-idor
  • CWE-862

लाइसेंस

GNU Affero GPL v3.0। देखें LICENSE। केवल Loopback lab। कोई वारंटी नहीं।

टूल डाउनलोड करें