Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
moodle-grades-feedback-idor — Moodle 5.2.3 - Élevé - À distance - IDOR - core_grades_get_feedback ignore les vérifications des groupes séparés | Kitploit
Outils/GitHubGitHub/abraxas/moodle-grades-feedback-idor
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsVirtualisation de SécuritéSécurité WebTests d'IntrusionLabs et Pratique
GitHubabraxas/moodle-grades-feedback-idor

moodle-grades-feedback-idor

Moodle 5.2.3 - Élevé - À distance - IDOR - core_grades_get_feedback ignore les vérifications des groupes séparés

Voir le dépôt
3il y a 4 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

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

Classe : IDOR Portée : Distante

core_grades_get_feedback appelle toujours uniquement require_capability('gradereport/grader:view'). D'autres services web de notes ont reçu groups_user_groups_visible / groups_group_visible après MSA-26-0016 / MDL-88667. Ce service AJAX ne l'a pas reçu. Le JSON revient avec feedbacktext, fullname, picture et le premier champ d'identité.

Un enseignant non-éditeur dans des groupes séparés, sans accessallgroups, POSTe l'userid d'un autre étudiant et lit le feedback de ce groupe.

IDpas encore de CVE
CWECWE-863 / CWE-200
CVSSMoyen : 4.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
ProduitMoodle
Affecté5.2.3 tag v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
Authenseignant non-éditeur avec gradereport/grader:view, sans moodle/site:accessallgroups. Cours en groupes séparés.
LicenceGNU Affero GPL v3.0
Lab127.0.0.1 uniquement

Ce qu'un attaquant peut faire

Auteur : un enseignant non-éditeur inscrit dans un cours en groupes séparés, dans le groupe A uniquement, avec la vue du carnet de notes et sans access-all-groups. Il choisit l'userid d'un autre étudiant inscrit (entiers séquentiels) et appelle le service AJAX. Pas de RCE. Pas de LPE. Pas d'écriture de note.

PrivilègeMéthode / sinkRecon / intégrité / disponibilitéProuvé en lab ou déduit
Lire le feedback de notes d'un autre groupePOST /lib/ajax/service.php?sesskey= core_grades_get_feedback {courseid, userid, itemid}ReconProuvé en lab. HTTP 200, error=false, feedbacktext contient MOODLE-GRADES-FEEDBACK-IDOR-WITNESS
Lire le champ d'identité et le nom d'affichage de cet étudiantMême réponse additionalfield / fullname / pictureReconProuvé en lab. [email protected], fullname=Student Bravo
Parcourir les valeurs séquentielles d'userid dans le même coursMême méthode, ids devinésReconDéduit. Le lab a utilisé l'id seedé du groupe B
Lister le groupe B via le sélecteur frèrecore_grades_get_gradable_users {courseid, groupid=B}n/aProuvé en lab fermé. cannotaccessgroup
Un étudiant appelle le même service de feedbackrôle étudiant, mêmes argumentsn/aProuvé en lab fermé. nopermissions
Feedback du même groupe (étudiant du groupe A)appel enseignant pour Student AlphaRecon (prévu)Prouvé en lab autorisé. HTTP 200, error=false
RCE PHP / LPE OS / écriture de noten/an/aFermé. Ce reliquat est une lecture de feedback et de champs de profil

Un Moodle par défaut sans groupes séparés, ou un enseignant qui possède déjà moodle/site:accessallgroups, n'est pas ce reliquat. Les enseignants éditeurs avec cette capacité voient déjà tous les groupes.

Autres reliquats du même pin : Blackboard img file read, enrol_database SQLi, hidden grade items.

Comment je l'ai trouvé

J'ai épinglé moodle/moodle v5.2.3 après MSA-26-0042/0043. MSA-26-0016 a fermé les vérifications de groupe sur d'autres services web de notes. get_feedback.php ne faisait pas partie de cet ensemble. L'interface du carnet de notes a été durcie. Ce service AJAX ne l'a pas été.

Fausses pistes déjà consignées : traiter l'échec du frère get_gradable_users comme toute l'histoire (celui-ci lève déjà cannotaccessgroup) ; qualifier ceci d'écriture de note parce que la charge utile nomme itemid (le service est une lecture) ; étudiant-comme-attaquant (nopermissions). Un reverse shell. Du théâtre.

Lab

Moodle v5.2.3 en direct sur php:8.3-cli + MariaDB 11.4. Le seed construit un cours en groupes séparés, enseignant dans le groupe A uniquement, étudiant B dans le groupe B uniquement, CAP_PREVENT sur moodle/site:accessallgroups, et un élément de note manuel dont le feedback est le témoin. how=live.

Compose monte en bind ../../vendors/moodle/src comme /opt/moodle-pin (le chemin est relatif à lab/docker-compose.yml). Clonez moodle/moodle tag v5.2.3 vers ce chemin, ou pointez le volume vers votre checkout. L'arborescence Moodle n'est pas dans ce pack.

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

ou

cd lab
./run.sh

Ciblez uniquement http://127.0.0.1:19580. Projet Compose moodle-grades-feedback-idor. La stack est démontée après l'exécution.

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

Le correctif

Après validate_context / require_capability, charger le cours et l'utilisateur cible, puis refuser sauf si groups_user_groups_visible($course, $userid) et que la cible est inscrite. Même forme que gradereport_user et core_grades_get_gradable_users après MDL-88667.

Références

  • github.com/moodle/moodle tag v5.2.3
  • get_feedback.php
  • Le frère refuse déjà l'autre groupe : get_gradable_users.php
  • Proche patché (pas ce service) : MSA-26-0016 / MDL-88667
  • Même pin : moodle-blackboard-img · moodle-enrol-database-sqli · moodle-grades-gradeitems
  • CWE-863

Licence

GNU Affero GPL v3.0. Voir LICENSE. Lab en boucle locale uniquement. Aucune garantie.

Télécharger l’outil