Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
moodle-blackboard-img — Moodle 5.2.3 — высокий — удалённый — путь — Blackboard img src копирует файлы за пределами дерева импорта | Kitploit
Инструменты/GitHubGitHub/abraxas/moodle-blackboard-img
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииВеб-безопасностьТестирование на ПроникновениеЛаборатории и Практика
GitHubabraxas/moodle-blackboard-img

moodle-blackboard-img

Moodle 5.2.3 — высокий — удалённый — путь — Blackboard img src копирует файлы за пределами дерева импорта

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

Популярное

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

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

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

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

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

Abraxas Labs - moodle-blackboard-img

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

moodle-blackboard-img

Moodle LMS 5.2.3 - Moodle

Класс: чтение файлов Доступ: удалённый

qformat_blackboard_six_base::text_field присоединяет img src к $this->filebase без PARAM_PATH. Затем store_file_for_text_field копирует этот путь в черновую файловую область пользователя. Метод get_filecontent из того же семейства уже ограничивает путь через clean_param($path, PARAM_PATH). MSA-26-0012 ограничил импорт активности базы данных с помощью PARAM_FILE. Blackboard img src в этот набор не входил.

Учитель, который может импортировать zip-файл Blackboard, подкладывает <img src="https://raw.githubusercontent.com/html/config.php">. Черновое «изображение» — это config.php. Студенты импортировать не могут.

IDCVE пока нет
CWECWE-22 / CWE-73
CVSSСредний: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ПродуктMoodle
Затронуто5.2.3 тег v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
Аутентификацияучитель (банк вопросов / импорт Blackboard в урок)
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1

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

Вектор: учитель, который может импортировать zip-файл Blackboard в банк вопросов (или урок). Типичный приз — config.php (пароль от БД) от имени пользователя PHP. Это не RCE, если только не связать со вторым оставшимся багом. Это не LPE.

ПривилегияМетод / точка сбросаРазведка / целостность / доступностьДоказано в лаборатории или выведено
Чтение файла, который может открыть пользователь PHP, через ../ в img srctext_field присоединяет $this->filebase . '/' . $path; store_file_for_text_field копирует в черновую областьРазведка (байты файла)Доказано в лаборатории. Байты черновика совпадают с /var/www/html/config.php и содержат MOODLE-BLACKBOARD-IMG-WITNESS
Скачивание этого черновика как «изображения»itemid черновика + переписанное имя файла @@PLUGINFILE@@РазведкаДоказано в лаборатории. GET /draft вернул 298 байт, sha256 совпадает с config.php
Любой, кто позже сможет открыть импортированный вопросТот же черновик / pluginfileРазведкаВыведено. Лаборатория остановилась на совпадении черновика учителя
Импорт студентомтот же zip, role=studentн/дДоказано в лаборатории закрыто. HTTP 403 teacher-only
Тот же путь через clean_param($path, PARAM_PATH)гаджет jail=1н/дДоказано в лаборатории закрыто. Нет совпадения, нет свидетеля, путь остаётся внутри filebase
PHP RCE / OS LPEн/дн/дЗакрыто. Этот оставшийся баг копирует байты файла в черновик. Он их не исполняет

Moodle по умолчанию без импорта Blackboard — это не данный баг. MSA-22-0016 очистил только baseurl.

Другие оставшиеся баги того же пина: enrol_database SQLi, grades feedback IDOR, hidden grade items.

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

Я зафиксировал moodle/moodle v5.2.3 после MSA-26-0042/0043. MSA-26-0012 ограничил импорт активности базы данных. Затем я занялся Blackboard, потому что get_filecontent() уже знал о PARAM_PATH, а text_field() всё ещё выполнял необработанное присоединение.

Уже зафиксированные ошибочные пути: считать импорт студентом утечкой (это 403); называть это RCE, потому что скопированный файл — PHP (черновик хранит байты, он их не include); предполагать, что MSA-22-0016 завершил работу (только baseurl). Обратная оболочка. Театр.

Лаборатория

Точный гаджет пина text_field / store_file_for_text_field, а не полноценное PHP-приложение Moodle. how=gadget.

python3 moodle-blackboard-img-Abraxas-Labs.py

или

cd lab
./run.sh

Цель только http://127.0.0.1:19560. Проект Compose moodle-blackboard-img. Стек разбирается после запуска.

SUCCESS moodle-blackboard-img how=gadget pin=v5.2.3 teacher-import=yes draft-match-config=yes student=403 param-path-jail=yes MOODLE-BLACKBOARD-IMG-WITNESS

Исправление

clean_param($path, PARAM_PATH) для img src, затем realpath должен оставаться внутри realpath($this->filebase). Та же форма, что и у get_filecontent().

Ссылки

  • github.com/moodle/moodle тег v5.2.3
  • formatbase.php (text_field, store_file_for_text_field)
  • format.php (get_filecontent уже использует PARAM_PATH)
  • Рядом исправлено (не это присоединение): MSA-26-0012
  • Тот же пин: moodle-enrol-database-sqli · moodle-grades-feedback-idor · moodle-grades-gradeitems
  • CWE-22

Лицензия

GNU Affero GPL v3.0. См. LICENSE. Только лаборатория на loopback. Без гарантий.

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