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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-63030 — WordPress 未授权RCE EXP | CVE-2026-63030 | Kitploit
Инструменты/GitHubGitHub/mhtsec/cve-2026-63030
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеРазработка Полезной Нагрузки
GitHubmhtsec/cve-2026-63030

CVE-2026-63030

WordPress 未授权RCE EXP | CVE-2026-63030

Репозиторий
95101 месяц назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-63030

WordPress REST API путаница маршрутов batch + SQL-инъекция, приводящая к полной цепочке эксплуатации создание администратора без аутентификации → удаленное выполнение кода (PoC).

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

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

Скачать инструмент
ПараметрОписание
CVECVE-2026-63030
КомпонентWordPress Core REST API (/batch/v1)
Затрагиваемые версииWordPress 6.9.0 – 6.9.4, 7.0.0 – 7.0.1 (согласно официальному уведомлению)
Предпосылки атакиНа целевой системе включен REST API batch; на сайте есть хотя бы одна опубликованная запись или страница
Требования к правамНе требуется вход (Pre-Auth)
УщербСоздание учетной записи администратора, а затем загрузка плагина для получения RCE

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

root@kitploit:~
Путаница маршрутов REST batch
    → SQL-инъекция в author__not_in
    → UNION для подделки WP_Post / oEmbed cache / Customizer changeset
    → При публикации Customizer переключение на контекст существующего администратора
    → REST /wp/v2/users создание нового администратора
    → Загрузка одноразового плагина в админке
    → Выполнение системных команд

Ключевые моменты (не "наложение записей в БД"):

  1. В serve_batch_request_v1() не синхронизированы индексы $matches / $validation на этапе проверки и планирования, что вызывает route confusion.
  2. После смещения строковый параметр author_exclude попадает в author__not_in запроса WP_Query, вставляется в NOT IN (...), образуя SQL-инъекцию.
  3. Через UNION SELECT подделывается полная строка wp_posts, что запускает логику oEmbed/Customizer и переключает контекст текущего пользователя на существующего администратора.
  4. Используя права администратора, вызывается REST-интерфейс создания пользователей, создается новый администратор.
  5. Вход в админку, загрузка плагина, выполнение команды.

Требования к среде

  • Python 3.10+ (только стандартная библиотека, сторонних зависимостей нет)
  • Целевой экземпляр WordPress, который вы имеете право тестировать
  • В целевом PHP должна быть активна хотя бы одна исполняемая функция (proc_open / passthru / system / shell_exec / exec / popen)
  • Если disable_functions отключает все функции выполнения команд, создать администратора всё равно можно, но этап RCE завершится неудачей

Описание файлов

root@kitploit:~
CVE-2026-63030/
├── exp.py        # Полный скрипт эксплуатации (один файл, без зависимостей)
└── README.md     # Данное описание

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

Минимальное использование (автоматическое создание администратора, по умолчанию выполняется id)

root@kitploit:~
python3 exp.py --url http://192.168.1.10:8080/

Все параметры задаются вручную

root@kitploit:~
python3 exp.py --url http://192.168.199.134:9005/ --username mht --password 'mht666' --email [email protected] --command 'id' --timeout 60

Описание параметров

ПараметрОбязательныйПо умолчаниюОписание
--urlДаНетКорневой URL целевого WordPress
--usernameНетwp2_<hex>Имя нового администратора
--passwordНетWp2!<random>Пароль нового администратора
--emailНет<username>@wp2shell.invalidEmail нового администратора
--command / -cНетidКоманда, выполняемая через одноразовый плагин
--timeoutНет60Тайм-аут одного HTTP-запроса (сек)

Пример ожидаемого вывода

root@kitploit:~
[*] Creating administrator via SQLi -> customizer bridge...
[+] Generated administrator: labadmin
[*] Password: S3cure!pass
[*] Email: [email protected]
[*] Logging in as generated administrator...
[+] Authenticated.
[*] Uploading one-shot command plugin...
[*] Plugin path: http://192.168.1.10:8080/wp-content/plugins/lab_wp2_cmd_xxxxxxxx/lab_wp2_cmd_xxxxxxxx.php
[*] Executing command: id
[+] command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
[via: proc_open]
[*] Deleting generated administrator...
[+] Generated administrator removed.
[*] Cleaning up temporary plugin...
[+] Temporary plugin removed.

После завершения скрипт пытается:

  1. Удалить созданного администратора
  2. Удалить временный каталог плагина

В случае сбоя на промежуточном этапе вручную очистите данные по учётным данным из вывода.

Примечания

  1. Только авторизованная среда: не используйте против систем без разрешения.
  2. Ограничение целей: скрипт по умолчанию отклоняет буквенные IP-адреса публичных сетей, разрешая только частные / петлевые / локальные канальные адреса или доменные имена.
  3. Укрепление PHP: если появляется сообщение has been disabled for security reasons, значит соответствующая функция отключена в disable_functions. PoC последовательно пробует разные способы выполнения; если все отключены, RCE недоступен, но этап создания администратора всё ещё может быть успешным.
  4. Содержимое сайта: требуется хотя бы одна опубликованная запись или страница для начального заполнения кэша oEmbed.
  5. Идемпотентность и очистка: каждый запуск создаёт нового администратора и временный плагин; при успешном пути выполняется автоматическая очистка; в случае сбоя проверьте вручную wp-admin/users.php и wp-content/plugins/.

Рекомендации по исправлению

  • Обновитесь до исправленной версии (согласно уведомлению WordPress)
  • Если исправление недоступно, можно временно ограничить неавторизованный доступ к /batch/v1
  • В production-среде настройте disable_functions и используйте пользователя веб-сервера с минимальными правами, чтобы снизить влияние RCE

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

Код в этом репозитории предназначен только для исследований безопасности и авторизованного воспроизведения уязвимости. Пользователь должен самостоятельно соблюдать местные законы и условия авторизации целевой системы. Автор не несёт ответственности за любое неправомерное использование.