
PoC - Произвольная запись файла в Gibbon LMS для RCE (CVE-2023-45878)
Произвольная запись файлов в Gibbon LMS для RCE (CVE-2023-45878)
GibbonEdu Gibbon LMS версии 25.0.1 и ранее допускает произвольную запись файлов, потому что rubrics_visualise_saveAjax.php не требует аутентификации. Конечная точка принимает параметры img, path и gibbonPersonID. Параметр img должен содержать изображение в кодировке base64. Если задан параметр path, указанный путь используется как целевой каталог, объединяясь с абсолютным путём каталога установки. Содержимое параметра img декодируется из base64 и записывается по указанному пути к файлу. Это позволяет создавать PHP-файлы, которые обеспечивают удалённое выполнение кода (без аутентификации).
Этот скрипт предоставляет псевдо-интерактивную оболочку. Один PHP-файл загружается в удалённую систему, а локальный скрипт служит обёрткой для непосредственного взаимодействия с ним. При отправке команды возвращается HTTP-ответ от PHP-полезной нагрузки. Если файл полезной нагрузки будет удалён из удалённой системы, скрипт обнаружит ответ со страницей ошибки 404, выполнит новую загрузку и повторно отправит последнюю команду.
python3 gibbonlms_cmd_shell.py url
python3 gibbonlms_cmd_shell.py http://example.com
Этот скрипт предоставлен в образовательных целях. Пожалуйста, эксплуатируйте ответственно.