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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-80099 — Плагины Newfold (wp-module-data <= 2.9.7) без аутентификации | Kitploit
Инструменты/GitHubGitHub/wayang1337/cve-2026-80099
Сканеры уязвимостейАтаки на ПаролиЭксплуатацияСкриптинг и автоматизацияЭксплуатация веб-приложенийСбор информацииПост-эксплуатацияВеб-безопасностьТестирование на ПроникновениеИнструмент Удаленного Доступа
GitHubwayang1337/cve-2026-80099
7 ч 14 мин назадЕщё не проверено

CVE-2026-80099

Плагины Newfold (wp-module-data <= 2.9.7) без аутентификации

Репозиторий

Популярное

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

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

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

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

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

CVE-2026-80099 PoC

Эксплойт для неаутентифицированного обхода аутентификации и RCE, нацеленный на плагины Newfold для WordPress, включающие wp-module-data.

Обзор

Этот инструмент эксплуатирует уязвимость проверки Bearer-токена в модуле Newfold wp-module-data. Когда сайт WordPress, использующий уязвимый плагин Newfold, не подключён к Hiive, HiiveConnection::get_auth_token() возвращает false. Это значение проходит через strrev(), а затем хешируется, в результате чего секретная соль сводится к публичной константе:

root@kitploit:~
sha256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Поскольку все остальные компоненты хешируемой полезной нагрузки (HTTP-метод, URL запроса, тело запроса, временная метка) полностью контролируются атакующим, действительный Bearer-токен может быть вычислен офлайн. Уязвимый фильтр срабатывает на rest_authentication_errors, поэтому поддельный токен аутентифицирует вызывающего как для всего REST API WordPress, включая основные маршруты. Затем этот доступ используется для полного удалённого выполнения кода.

первого администратора

Уязвимое ПО

Плагин / МодульУязвимые версииИсправлено
wp-module-data<= 2.9.72.9.8
bluehost-wordpress-plugin<= 4.19.0n/a
hostgator<= 3.2.0n/a
web<= 2.3.5n/a
crazy-domains<= 2.5.2n/a

Обнаружение также охватывает слаги плагинов WordPress.org wp-plugin-web и crazy_blog.

Первопричина

В vendor/newfold-labs/wp-module-data/includes/Data.php:

root@kitploit:~
public function authenticate( $errors ) {        // hooked on rest_authentication_errors
    ...
    $data = array(
        'method'    => $_SERVER['REQUEST_METHOD'],
        'url'       => Url::getCurrentUrl(),
        'body'      => file_get_contents( 'php://input' ),
        'timestamp' => dataGet( getallheaders(), 'X-Timestamp' ),
    );
    $hash     = hash( 'sha256', wp_json_encode( $data ) );
    $salt     = hash( 'sha256', strrev( HiiveConnection::get_auth_token() ) );
    $is_valid = hash( 'sha256', $hash . $salt ) === $token;

    if ( $is_valid ) {
        ... wp_set_current_user( <first administrator> ); return true;
    }
}

На неподключённом сайте strrev(false) приводится к strrev(''), что даёт '', и соль становится общеизвестным хешем пустой строки. Все остальные входные данные хеш-цепочки контролируются атакующим, поэтому токен полностью предсказуем.

Возможности

  • Обнаружение уязвимых плагинов Newfold через фингерпринтинг статических ресурсов
  • Обнаружение наличия модуля через REST-маршрут newfold-data/v1/verify/<hex>
  • Офлайн-подделка действительного Bearer-токена (секрет не требуется)
  • Проверка обхода путём вызова GET /wp/v2/users/me и анализа ролей
  • Полная RCE-цепочка с несколькими резервными техниками:
    1. Запись через редактор тем в 404.php / index.php
    2. Загрузка плагина через ZIP
    3. Запись через редактор в неактивный плагин, активация через REST и восстановление
  • Опциональный постоянный файловый менеджер .fm.php, размещаемый в корне веб-сервера
  • Режим массового сканирования с многопоточными воркерами, поддержкой возобновления и регулируемым прогрессом
  • Два пути аутентификации для постэксплуатации: вход по magic-link Newfold SSO (обходит блокировки ModSecurity на wp-login.php) и классический вход через форму wp-login.php

Требования

  • Python 3.7+
  • requests
  • urllib3 (опционально, только для подавления предупреждений TLS)

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

root@kitploit:~
pip install requests urllib3

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

Проверка одной цели

Обнаружение только для чтения и проверка обхода:

root@kitploit:~
python3 exploit.py -u https://target.example

RCE на одной цели

Полная цепочка до постоянного шелла:

root@kitploit:~
python3 exploit.py -u https://target.example --mode rce

Сброс пароля первого администратора вместо создания нового:

root@kitploit:~
python3 exploit.py -u https://target.example --mode rce --takeover

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

Только проверка по списку целей:

root@kitploit:~
python3 exploit.py --list targets.txt

Полная цепочка на каждом уязвимом хосте (требует явного подтверждения):

root@kitploit:~
python3 exploit.py --list targets.txt --mode rce --apply-rce

Предварительная фильтрация с помощью проверок статических ресурсов перед обращением к REST API:

root@kitploit:~
python3 exploit.py --list targets.txt --brand-filter

Остановка после первых N уязвимых хостов:

root@kitploit:~
python3 exploit.py --list targets.txt --stop-after 5

Возобновление предыдущего запуска:

root@kitploit:~
python3 exploit.py --list targets.txt --resume

Опции

ФлагОписание
-u, --urlБазовый URL одной цели
--listФайл, содержащий по одному URL цели на строку
--modecheck (только обнаружение) или rce (полная цепочка); по умолчанию check
--takeoverСбросить пароль первого администратора вместо создания нового администратора
--outputПуть для вывода JSONL в массовом режиме; по умолчанию cve_2026_80099_results.jsonl
--vuln-listСписок уязвимых хостов в виде чистых URL; по умолчанию vuln.txt
--threadsКоличество воркеров для массового режима; по умолчанию 20
--timeoutТаймаут запроса в секундах; по умолчанию 15
--fast-timeoutТаймаут быстрой проверки в секундах; по умолчанию 6
--retriesКоличество повторных попыток на запрос; по умолчанию 1
--proxyURL HTTP(S)-прокси
--all-outЗаписывать все строки массового режима, а не только уязвимые
--apply-rceЗапускать RCE-цепочку на уязвимых хостах в массовом режиме
--brand-filterПредварительная фильтрация с использованием статических ресурсов плагинов Newfold
--stop-afterОстановить массовое сканирование после N уязвимых хостов; 0 означает обработать все
--quietОтключить строки прогресса по каждой цели
--resumeДописывать в вывод и пропускать уже присутствующие цели

Детали RCE-цепочки

После подтверждения контекста администратора инструмент последовательно пробует три техники:

  1. Шелл через редактор тем — записывает небольшую PHP-полезную нагрузку в 404.php или index.php активной темы. Полезная нагрузка срабатывает при запросе любого несуществующего URL (для 404.php) или корня сайта (для index.php).

  2. Шелл через загрузку плагина — собирает ZIP, содержащий минимальный плагин, загружает его через wp-admin/update.php?action=upload-plugin и обращается к PHP-файлу плагина напрямую.

  3. Цепочка через редактор неактивного плагина — получает список плагинов через REST API, выбирает неактивный, записывает cmd-шелл в его основной файл через plugin-editor.php, активирует его через PUT /wp/v2/plugins/<slug>, вызывает шелл по любому URL фронтенда, размещает .fm.php в корне веб-сервера, затем деактивирует плагин и восстанавливает исходный файл. Этот путь рассчитан на выживание на хостах, которые блокируют редактор тем, блокируют прямой доступ к wp-content или откатывают изменения через loopback-проверки работоспособности.

При успехе в корне веб-сервера размещается постоянный файловый менеджер .fm.php. Он поддерживает:

  • ?cmd=<shell command>
  • ?cat=<path> для чтения файла
  • ?put=<path>&data=<base64> для записи файла
  • ?ls=<path> для листинга каталога

Выходные файлы

  • cve_2026_80099_results.jsonl — записи JSONL для каждой просканированной цели. Уязвимые записи включают vuln: true, admin, admin_id и, при успехе RCE, shell (URL размещённого файлового менеджера или шелла).
  • vuln.txt — по одному чистому URL на строку для каждой уязвимой цели или цели с шеллом.

Примечания

  • Инструмент игнорирует системные и средовые прокси через trust_env = False, чтобы избежать утечки массовых сканирований через локальные прокси.
  • Bearer-токен вычисляется для точного URL, который увидит сервер (схема, хост и URI запроса), соответствуя поведению Url::getCurrentUrl(). Сначала подготавливается запрос, а токен выводится из подготовленного URL.
  • PHP-совместимый JSON-энкодер воспроизводит поведение json_encode по умолчанию, включая экранированные прямые слэши, экранирование не-ASCII через \uXXXX и суррогатные пары UTF-16 для астральных символов, поэтому хешируемая полезная нагрузка совпадает побайтово.
  • Неудачная проверка, возвращающая 401, обычно означает, что цель исправлена (модуль >= 2.9.8), сайт подключён к Hiive (настоящий токен, неизвестная соль) или посредник удаляет заголовок Authorization. 403 обычно указывает на вмешательство другого фильтра rest_authentication_errors.

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

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

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