Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
moodle-grades-feedback-idor — Moodle 5.2.3 - Hoch - Remote - IDOR - core_grades_get_feedback umgeht separate-groups-Prüfungen | Kitploit
Tools/GitHubGitHub/abraxas/moodle-grades-feedback-idor
SchwachstellenanalyseExploitationWebanwendungs-ExploitationInformationsbeschaffungSicherheitsvirtualisierungWebsicherheitPenetrationstestsLabs & Praxis
GitHubabraxas/moodle-grades-feedback-idor

moodle-grades-feedback-idor

Moodle 5.2.3 - Hoch - Remote - IDOR - core_grades_get_feedback umgeht separate-groups-Prüfungen

Repository anzeigen
3vor 3 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

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

Klasse: IDOR Reichweite: Remote

core_grades_get_feedback ruft weiterhin nur require_capability('gradereport/grader:view') auf. Andere Grade-Webservices erhielten groups_user_groups_visible / groups_group_visible nach MSA-26-0016 / MDL-88667. Dieser AJAX-Service nicht. Das JSON kommt mit feedbacktext, fullname, picture und dem ersten Identitätsfeld zurück.

Ein nicht-editierender Teacher in Separate groups, ohne accessallgroups, sendet die userid eines anderen Studenten per POST und liest das Feedback dieser Gruppe.

IDnoch keine CVE
CWECWE-863 / CWE-200
CVSSMedium: 4.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
ProduktMoodle
Betroffen5.2.3 Tag v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
Authnicht-editierender Teacher mit gradereport/grader:view, ohne moodle/site:accessallgroups. Kurs in Separate groups.
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

Schreiber: ein nicht-editierender Teacher, der in einem Separate-groups-Kurs eingeschrieben ist, nur in Gruppe A, mit Grader-Ansicht und ohne access-all-groups. Er wählt die userid eines anderen eingeschriebenen Studenten (fortlaufende Integers) und ruft den AJAX-Service auf. Kein RCE. Kein LPE. Kein Score-Write.

PrivilegMethode / SinkRecon / Integrität / VerfügbarkeitLab-belegt oder abgeleitet
Feedback einer anderen Gruppe lesenPOST /lib/ajax/service.php?sesskey= core_grades_get_feedback {courseid, userid, itemid}ReconLab-belegt. HTTP 200, error=false, feedbacktext enthält MOODLE-GRADES-FEEDBACK-IDOR-WITNESS
Identitätsfeld und Anzeigename dieses Studenten lesenGleiche Antwort additionalfield / fullname / pictureReconLab-belegt. [email protected], fullname=Student Bravo
Fortlaufende userid-Werte im selben Kurs durchlaufenGleiche Methode, geratene IDsReconAbgeleitet. Lab nutzte die geseedete Gruppen-B-ID
Gruppe B über den Sibling-Selector auflistencore_grades_get_gradable_users {courseid, groupid=B}n/aLab-belegt geschlossen. cannotaccessgroup
Student ruft denselben Feedback-Service aufStudent-Rolle, gleiche Argumenten/aLab-belegt geschlossen. nopermissions
Feedback derselben Gruppe (Student aus Gruppe A)Teacher-Aufruf für Student AlphaRecon (beabsichtigt)Lab-belegt erlaubt. HTTP 200, error=false
PHP RCE / OS LPE / Grade-Writen/an/aGeschlossen. Dieser Rest ist ein Read von Feedback- und Profilfeldern

Standard-Moodle ohne Separate groups, oder ein Teacher, der bereits moodle/site:accessallgroups hat, ist nicht dieser Rest. Editierende Teacher mit dieser Cap sehen ohnehin jede Gruppe.

Weitere Reste desselben Pins: Blackboard img file read, enrol_database SQLi, hidden grade items.

Wie ich es gefunden habe

Ich habe moodle/moodle v5.2.3 nach MSA-26-0042/0043 gepinnt. MSA-26-0016 schloss Gruppenprüfungen bei anderen Grade-Webservices. get_feedback.php war nicht in diesem Set. Die Grader-UI wurde gehärtet. Dieser AJAX-Service nicht.

Bereits festgehaltene Irrwege: den Sibling-Fehlschlag bei get_gradable_users als die ganze Geschichte zu behandeln (dieser wirft bereits cannotaccessgroup); dies als Score-Write zu bezeichnen, weil die Payload itemid nennt (der Service ist ein Read); Student-als-Angreifer (nopermissions). Eine Reverse Shell. Theater.

Lab

Live-Moodle v5.2.3 auf php:8.3-cli + MariaDB 11.4. Das Seed baut einen Separate-groups-Kurs, Teacher nur in Gruppe A, Student B nur in Gruppe B, CAP_PREVENT auf moodle/site:accessallgroups und ein manuelles Grade-Item, dessen Feedback der Witness ist. how=live.

Compose bind-mountet ../../vendors/moodle/src als /opt/moodle-pin (Pfad ist relativ zu lab/docker-compose.yml). Klone moodle/moodle Tag v5.2.3 an diesen Pfad, oder richte das Volume auf deinen Checkout. Der Moodle-Tree ist nicht in diesem Pack.

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

oder

cd lab
./run.sh

Ziel nur http://127.0.0.1:19580. Compose-Projekt moodle-grades-feedback-idor. Der Stack wird nach dem Lauf abgebaut.

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

Der Fix

Nach validate_context / require_capability den Kurs und den Zielnutzer laden, dann ablehnen, sofern nicht groups_user_groups_visible($course, $userid) gilt und das Ziel eingeschrieben ist. Gleiche Form wie gradereport_user und core_grades_get_gradable_users nach MDL-88667.

Referenzen

  • github.com/moodle/moodle Tag v5.2.3
  • get_feedback.php
  • Sibling verweigert die andere Gruppe bereits: get_gradable_users.php
  • In der Nähe gepatcht (nicht dieser Service): MSA-26-0016 / MDL-88667
  • Gleicher Pin: moodle-blackboard-img · moodle-enrol-database-sqli · moodle-grades-gradeitems
  • CWE-863

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.

Tool herunterladen