
неаутентифицированное RCE в ядре WordPress (CVE-2026-63030 + CVE-2026-60137)
Эксплуатация путаницы маршрутизации (CVE-2026-63030) и SQL-инъекции (CVE-2026-60137) в конечной точке пакетной обработки WordPress REST API для достижения удаленного выполнения кода.
Конечная точка пакетной обработки (/batch/v1) WordPress REST API не изолирует маршрутизацию запросов должным образом. Вкладывая пакетные запросы друг в друга, злоумышленник может совершать внутренние запросы, обходящие обычные проверки разрешений WordPress. Ключевым индикатором является шаблон ошибок parse_path_failed + block_cannot_read в ответе — это подтверждает, что путаница маршрутизации эксплуатируема.
Когда запрос неправильно маршрутизируется через конечную точку пакетной обработки, параметр author_exclude в GET /wp/v2/posts недостаточно очищается. Это позволяет выполнять SQL-инъекции через составные запросы и операторы UNION — все без аутентификации.
Phase 1: Разведка
─────────────
Проверка доступности конечной точки пакетной обработки (HTTP 207)
Проверка путаницы маршрутизации через маркерные запросы
Подтверждение SQL-инъекции по времени/оракулу
Phase 2: UNION → RCE (быстрый путь)
─────────────────────────────
Если UNION-инъекция работает:
1. Обнаружение префикса таблиц (слепым методом или перебором распространенных)
2. СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ-АДМИНИСТРАТОРА через составные UNION INSERT запросы
- Хэш Bcrypt генерируется через PHP на машине атакующего
- Вставка строки в {prefix}_users + {prefix}_usermeta
- Новый пользователь получает права администратора
3. Вход + Развертывание веб-шелла как плагин WordPress
4. Выполнение команд через ?t=TOKEN&c=id
Phase 3: Слепая инъекция → Хэш (запасной путь)
─────────────────────────────────
Если UNION заблокирован, но слепая SQLi работает:
1. Извлечение версии MySQL, пользователя, имени базы данных
2. Извлечение префикса таблиц из information_schema
3. Извлечение хэша администратора из {prefix}_users WHERE id=1
4. Взлом офлайн: hashcat -m 3200 hash.txt wordlist.txt
5. Использование --user / --pass --cmd id с взломанным паролем
Phase 4: Вход по учетным данным
──────────────────────
Если указаны --user/--pass:
1. Вход через wp-login.php или Basic Auth REST API
2. Загрузка веб-шелла как плагин
3. Выполнение команд
# Auto mode — check, UNION, create admin, deploy webshell
python3 wp2shell.py https://target.com
# With known credentials (e.g., after cracking hash)
python3 wp2shell.py https://target.com --user admin --pass P@ssw0rd --cmd id
# UNION only (skip blind fallback)
python3 wp2shell.py https://target.com --union-only
# Blind extraction only (skip UNION attempt)
python3 wp2shell.py https://target.com --blind-only
# Debug via proxy
python3 wp2shell.py https://target.com --proxy http://127.0.0.1:8080
# Custom SLEEP duration for time-based blind (default 0.01s)
python3 wp2shell.py https://target.com --sleep 0.5
Этот инструмент предназначен только для авторизованного тестирования безопасности. Вы должны иметь явное разрешение от владельца цели перед его использованием. Несанкционированный доступ к компьютерным системам является незаконным.
| Флаг | Описание |
|---|
--proxy | HTTP-прокси (например, Burp Suite) |
--user | Имя пользователя администратора для входа |
--pass | Пароль администратора |
--cmd | Команда для выполнения на цели |
--union-only | Пропустить слепое извлечение |
--blind-only | Пропустить попытку UNION |
--sleep | Количество секунд SLEEP для временной слепой инъекции |