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
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииВиртуализация для безопасностиВеб-безопасностьТестирование на ПроникновениеЛаборатории и Практика
GitHubabraxas/moodle-grades-feedback-idor

moodle-grades-feedback-idor

Moodle 5.2.3 — высокий уровень — удалённо — IDOR — core_grades_get_feedback пропускает проверки отдельных групп

Репозиторий
11616 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Abraxas Labs - moodle-grades-feedback-idor

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

Разбор: https://abraxaslabs.tech/research/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 и первым полем идентификации.

Преподаватель без права редактирования в режиме Separate groups, без accessallgroups, отправляет POST с userid другого студента и читает отзыв этой группы.

IDCVE пока нет
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. Курс в режиме Separate groups.
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1

Что может сделать атакующий

Автор: преподаватель без права редактирования, зачисленный на курс в режиме Separate groups, только в группе A, с правом просмотра оценок и без доступа ко всем группам. Он выбирает 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 в том же курсеТот же метод, угаданные idРазведкаВыведено. В лаборатории использовался предустановленный id группы B
Перечисление группы B через родственный селекторcore_grades_get_gradable_users {courseid, groupid=B}н/дДоказано в лаборатории закрыто. cannotaccessgroup
Студент вызывает тот же сервис отзывовроль студента, те же аргументын/дДоказано в лаборатории закрыто. nopermissions
Отзыв в своей группе (студент группы A)вызов преподавателя для Student AlphaРазведка (предполагаемая)Доказано в лаборатории, разрешено. HTTP 200, error=false
PHP RCE / OS LPE / запись оценкин/дн/дЗакрыто. Этот остаток — чтение отзыва и полей профиля

Стандартный Moodle без Separate groups или преподаватель, у которого уже есть moodle/site:accessallgroups, — это не данный остаток. Преподаватели с правом редактирования и этой возможностью уже видят каждую группу.

Другие остатки того же пина: чтение файлов изображений Blackboard, SQLi в enrol_database, скрытые элементы оценок.

Как я это нашёл

Я зафиксировал moodle/moodle v5.2.3 после MSA-26-0042/0043. MSA-26-0016 закрыл проверки групп в других веб-сервисах оценок. get_feedback.php не входил в этот набор. Интерфейс оценщика был усилен. Этот AJAX-сервис — нет.

Уже зафиксированные неверные повороты: трактовка пропуска в соседнем get_gradable_users как всей истории (тот уже выбрасывает cannotaccessgroup); называть это записью оценки, потому что в payload указан itemid (сервис — чтение); студент как атакующий (nopermissions). Обратная оболочка. Театр.

Лаборатория

Живой Moodle v5.2.3 на php:8.3-cli + MariaDB 11.4. Seed создаёт курс с раздельными группами, преподаватель только в группе 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 в этот путь или укажите том на ваш checkout. Дерево 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. Без гарантий.

Скачать инструмент