
Python PoC для проверки CVE-2025-6325 (неаутентифицированное повышение привилегий) и CVE-2025-6327 (RCE через произвольную загрузку файлов) в King Addons for Elementor <= 51.1.36.
Инструмент для исследования и валидации King Addons for Elementor <= 51.1.36, охватывающий две задокументированные уязвимости:
Только для авторизованного тестирования безопасности, исследования уязвимостей и контролируемых лабораторных сред.
Этот проект предоставляет двухцелевой PoC для валидации влияния на безопасность двух уязвимостей в King Addons for Elementor.
Неаутентифицированное повышение привилегий через функциональность регистрации King Addons.
Уязвимый поток принимает контролируемое клиентом значение user_role и передаёт его в создание пользователя WordPress без применения соответствующего списка разрешённых ролей.
Уязвимая версия: <= 51.1.36
Исправленная версия: 51.1.37
Уязвимый поток регистрации использует:
POST /wp-admin/admin-ajax.php
action=king_addons_user_register
user_role=administrator
PoC также проверяет, может ли созданная учётная запись аутентифицироваться и получить доступ к странице администрирования пользователей WordPress.
Неаутентифицированная загрузка произвольных файлов через функциональность загрузки конструктора форм King Addons.
Уязвимый обработчик загрузки может некорректно принять PHP-файл, что приводит к появлению доступного через веб загруженного файла и потенциальному выполнению кода на стороне сервера.
Уязвимая версия: <= 51.1.36
Исправленная версия: 51.1.37
Соответствующее AJAX-действие:
POST /wp-admin/admin-ajax.php
action=king_addons_upload_file
PoC валидирует поток загрузки и проверяет, может ли загруженный тестовый файл выполнить безвредную команду id.
Скрипт поддерживает четыре режима работы:
check
privesc
upload
both
Эти режимы доступны напрямую через интерфейс командной строки.
Требуется Python 3.
Сторонние пакеты Python не требуются.
Проверьте версию Python:
python3 --version
Запустить обе проверки уязвимостей:
python3 exploit.py -u http://target.local --exploit both
Обнаружить открытые nonce King Addons без запуска этапов эксплуатации:
python3 exploit.py -u http://target.local --exploit check
python3 exploit.py -u http://target.local --exploit privesc
python3 exploit.py -u http://target.local --exploit upload
Создайте файл целей:
http://target1.local
https://target2.local
http://target3.local
Комментарии и пустые строки игнорируются.
Запустить пассивную оценку:
python3 exploit.py -l targets.txt --exploit check
Запустить оба этапа валидации:
python3 exploit.py -l targets.txt --exploit both -t 20
Запустить валидацию загрузки:
python3 exploit.py -l targets.txt --exploit upload -t 20
Запустить валидацию повышения привилегий:
python3 exploit.py -l targets.txt --exploit privesc -t 20
PoC автоматически ищет на страницах цели nonce, необходимые для двух уязвимых потоков.
Настройки обхода по умолчанию:
Depth : 3
Max pages : 80
Timeout : 20 seconds
Threads : 10
Эти значения по умолчанию определены в конфигурации CLI скрипта.
Пример:
python3 exploit.py \
-l targets.txt \
--exploit both \
-t 20 \
--depth 3 \
--max-pages 80 \
--timeout 20
По умолчанию скрипт использует results.tsv для структурированных результатов и loot.txt для записей успешной валидации.
Во время выполнения инструмент сообщает о нескольких состояниях.
Указывает, что валидация загрузки прошла успешно и тестовый PHP-файл ответил на проверочный запрос.
Пример:
PWNED [SHELL]
Указывает, что валидация повышения привилегий создала учётную запись с использованием уязвимого потока регистрации.
Инструмент дополнительно фиксирует, была ли учётная запись проверена на странице администрирования пользователей WordPress.
Созданная учётная запись успешно аутентифицирована и подтверждена на странице пользователей WordPress.
Запрос на регистрацию прошёл успешно, но последующий этап проверки не смог подтвердить созданную учётную запись.
Успешный результат валидации не получен.
Цель вызвала сетевую ошибку, ошибку парсинга, обхода или другую ошибку выполнения.
Структурированные результаты записываются в формате TSV:
results.tsv
Вывод содержит поля для:
target
status
shell_url
shell_rce
priv_user
priv_pwd
priv_verified
err
Этот формат удобен для импорта результатов в электронные таблицы или дальнейшей обработки.
Записи успешной валидации дополнительно записываются в:
loot.txt
Скрипт записывает результаты валидации shell и привилегий как отдельные записи.
Visitor
│
▼
Public King Addons Register Form
│
▼
Nonce discovery
│
▼
king_addons_user_register
│
▼
Client-controlled user_role
│
▼
WordPress user creation
│
▼
Privilege escalation validation
PoC специально отправляет:
user_role=administrator
на эндпоинт регистрации.
Visitor
│
▼
King Addons Form Builder
│
▼
Upload nonce discovery
│
▼
king_addons_upload_file
│
▼
PHP test file upload
│
▼
Uploaded file URL
│
▼
Benign execution verification
PoC использует уникально сгенерированное имя тестового файла и проверяет возвращённый URL загрузки.
Реализация исследования была протестирована на:
WordPress 6.8 / 7.1
Elementor 4.2.3
King Addons 51.1.14
В заметках исследования сообщается об успешной валидации обоих потоков в контролируемой лабораторной среде, включая повышение привилегий и выполнение shell. Также был протестирован отрицательный контроль на версии 51.1.37.
В заметках исследования указано, что некоторые ZIP-релизы WordPress.org для 51.1.35 и 51.1.36 были впоследствии перетегированы с частичными исправлениями.
Таким образом, уязвимая реализация была подтверждена с использованием указанного тега SVN 51.1.14.
При воспроизведении исследования используйте точную лабораторную версию и пакет, указанные в исследовании, а не предполагайте, что каждый пакет с меткой 51.1.35 или 51.1.36 содержит идентичный уязвимый код.
Этот проект предназначен для:
Тестируйте только те системы, на которые у вас есть явное разрешение.
Не используйте этот проект против инфраструктуры третьих сторон без разрешения.
Автор не поощряет несанкционированный доступ, закрепление, кражу данных или нарушение работы систем.
Это программное обеспечение предоставляется для исследований в области безопасности и авторизованного тестирования.
Вы несёте ответственность за обеспечение соответствия вашего использования этого проекта применимым законам, нормативным актам, договорам и требованиям авторизации.
Автор и участники не несут ответственности за неправомерное использование, ущерб, нарушение работы сервисов, потерю данных или иные последствия, возникшие в результате несанкционированного использования.
JohenLastGen — JLG NETWORK
Research & Security Tooling
Telegram:
@johenlastgen
Канал:
@jlgnetworkredirect
MIT License
См. LICENSE для полного текста лицензии.
| Параметр | Описание |
|---|
-u, --url | Тестировать один URL цели |
-l, --list | Файл, содержащий URL целей |
-e, --exploit | Выбрать check, privesc, upload или both |
-t, --threads | Количество параллельных воркеров |
--depth | Максимальная глубина ссылок при обходе |
--max-pages | Максимальное количество страниц на цель |
--timeout | Таймаут HTTP-запроса в секундах |
-o, --output | Вывод результатов в TSV |
--loot | Вывод успешной валидации |
--no-color | Отключить цвета терминала |