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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-44011-craftcms-auth-rce — PoC для CVE-2026-44011: RCE в Craft CMS с аутентифицированным пользователем. | Kitploit
Инструменты/GitHubGitHub/4xura/cve-2026-44011-craftcms-auth-rce
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияВеб-безопасностьТестирование на ПроникновениеКомандование и УправлениеИнструмент Удаленного Доступа
GitHub4xura/cve-2026-44011-craftcms-auth-rce

CVE-2026-44011-craftcms-auth-rce

PoC для CVE-2026-44011: RCE в Craft CMS с аутентифицированным пользователем.

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

Популярное

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

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

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

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

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

CVE-2026-44011 Craft CMS authenticated RCE PoC

Только для авторизованного тестирования.

В рекомендации Craft CMS указаны уязвимые версии >=4.0.0, <4.17.12 и >=5.0.0, <5.9.18, а также указан precicom-vincent-tl как обнаруживший.

Запуск

python -m pip install -r requirements.txt
python cve-2026-44011.py -b 'https://example.com' -u '<username' -p '<password>' -c '<command>'

Обязательные аргументы:

  • -b, --base-url: URL Craft, включая http:// или https://.
  • -u, --username: Имя пользователя панели управления.
  • -p, --password: Пароль панели управления.
  • -c, --command: Команда для выполнения и захвата вывода.

Необязательные аргументы:

  • -P, --cp-path: Путь панели управления (по умолчанию: /admin).
  • -s, --site-id: ID сайта (по умолчанию: 1).
  • -e, --element-type: Тип элемента (по умолчанию: craft\elements\Category).
  • -f, --csrf-field: Имя поля CSRF при входе (по умолчанию: CRAFT_CSRF_TOKEN).
  • -t, --timeout: Таймаут запроса и обратного вызова в секундах (по умолчанию: 15).
  • -F, --force: Продолжать, когда версия Craft недоступна или вне диапазонов из рекомендации.
  • -H, --callback-host: Адрес, доступный цели (по умолчанию определяется локальный адрес; переопределите его при работе через промежуточный узел).
  • --listen-port: Порт прослушивания (по умолчанию: свободный порт, выбранный ОС; задайте фиксированный порт для перенаправления).

Анализ уязвимости

1. Ввод условия

В уязвимом действии поиска condition попадает из тела POST-запроса в создание объекта без очистки.

$conditionConfig = $this->request->getBodyParam('condition');
$condition = Craft::$app->getConditions()->createCondition($conditionConfig);

2. Вложенная разметка полей

ElementCondition::setFieldLayouts() создаёт разметку из каждого переданного массива.

if (is_array($fieldLayout)) {
    $fieldLayout['type'] = $this->elementType;
    return $fieldsService->createLayout($fieldLayout);
}

3. Выполнение вызываемого кода

Полезная нагрузка из рекомендации присоединяет Yii AttributeTypecastBehavior с ключом as и связывает событие с on *. Поведение достигает Psy\Readline\Hoa\ConsoleProcessus::execute через приведение типов к вызываемому в Yii.

condition.fieldLayouts[]
  -> FieldLayout behavior + event
  -> AttributeTypecastBehavior::typecastValue()
  -> call_user_func()
  -> ConsoleProcessus::execute()

Исправленный контроллер применяет Component::cleanseConfig() к условию перед созданием объекта.

Примечания

  • Документация Craft по CSRF требует действительную сессию и токен для POST-действий. Скрипт переносит их через вход и поиск.
  • Psy ConsoleProcessus::execute() по умолчанию экранирует метасимволы оболочки. PoC отдаёт временный скрипт для запуска -c, получает его вывод на встроенном HTTP-слушателе и после этого останавливает слушатель. Используйте -H, если цель не может достичь выведенного адреса.
  • Для захвата вывода требуются sh, curl и mktemp на цели.
  • Тесты: python -m unittest discover -s tests -v.
Скачать инструмент