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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-31324 — Prueba de concepto del exploit para CVE-2025-31324, una subida de archivos sin autenticación en SAP NetWeaver Visual Composer, con guía de detección, mapeo MITRE y pasos de remediación. | Kitploit
Herramientas/GitHubGitHub/hkenzokimura/cve-2025-31324
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónRed TeamingRespuesta a Incidentes
GitHubhkenzokimura/cve-2025-31324

CVE-2025-31324

Prueba de concepto del exploit para CVE-2025-31324, una subida de archivos sin autenticación en SAP NetWeaver Visual Composer, con guía de detección, mapeo MITRE y pasos de remediación.

Ver Repositorio
20hace 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-2025-31324 — SAP NetWeaver Visual Composer Subida de Archivos No Autenticada

Tipo: Prueba de Concepto — Investigación de Vulnerabilidades CVE: CVE-2025-31324 CVSS: 10.0 Crítico (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) Estado: Parcheado — Nota de Seguridad SAP 3594142 + 3604119 Añadido al KEV de CISA: Mayo 2025

⚠️ Este PoC utiliza un archivo JSP benigno ("Hello World") para validar la superficie de ataque sin ejecutar código malicioso. Uso exclusivo en entornos autorizados con fines de pentesting y desarrollo de detecciones.

Desarrollado por: HKK


$ cat ./vulnerability_summary.txt

La vulnerabilidad CVE-2025-31324 reside en el componente Visual Composer Metadata Uploader de SAP NetWeaver AS Java — una falla de missing authorization check que permite a cualquier atacante no autenticado enviar solicitudes POST al endpoint /developmentserver/metadatauploader, resultando en una subida irrestricta de archivos arbitrarios.

El CVE afecta específicamente al SAP NetWeaver Visual Composer Framework versión 7.50, con una puntuación CVSS de 10.0 — el máximo posible.

Los actores de amenazas explotaron activamente esta vulnerabilidad de enero a mayo de 2025, implantando webshells persistentes en cientos de sistemas en todo el mundo.


$ cat ./impact.txt

Al operar con privilegios elevados y estar cerca de datos ERP, el movimiento lateral hacia stacks SAP ABAP o bases de datos conectadas es trivial después de la explotación.

La cadena de explotación completa en ataques reales:

Subida JSP (CVE-2025-31324)
    → Webshell persistente en el servidor
        → RCE como proceso SAP (alto privilegio)
            → Acceso a datos ERP (Finanzas, RRHH, Cadena de Suministro)
                → Movimiento lateral hacia ABAP / DB
                    → Despliegue de frameworks C2 (ej: Brute Ratel)

$ cat ./architecture.txt

Cómo funciona el endpoint vulnerable

┌─────────────────────────────────────────────────────────────────────────┐
│              CVE-2025-31324 — FLUJO DE EXPLOTACIÓN                      │
│                                                                         │
│  ATACANTE                    SAP NETWEAVER AS JAVA                      │
│                                                                         │
│  POST /developmentserver/metadatauploader                               │
│  Content-Type: multipart/form-data          ┌─────────────────────┐    │
│  Cuerpo: archivo JSP/WAR/cualquiera ──────► │  Metadata Uploader  │    │
│  (sin autenticación)                        │                     │    │
│                                             │  ❌ Sin verificación  │    │
│                                             │     de auth         │    │
│                                             │  ❌ Sin validación    │    │
│                                             │     de extensión     │    │
│                                             │  ❌ Sin sanitización  │    │
│                                             │     de contenido     │    │
│                                             └────────┬────────────┘    │
│                                                      │                 │
│                                             Archivo guardado en:       │
│                                             /irj/root/ o similar       │
│                                                      │                 │
│  GET /irj/hello_world.jsp ◄──────────────────────────┘                 │
│  → Hello World (PoC benigno)                                            │
│  → Webshell (exploit real)                                              │
└─────────────────────────────────────────────────────────────────────────┘

¿Por qué existe el endpoint?

El /developmentserver/metadatauploader forma parte del SAP Visual Composer — una herramienta de desarrollo low-code para que analistas de negocio creen aplicaciones SAP sin código Java. El endpoint fue diseñado para recibir modelos de metadata durante el desarrollo. Aunque el componente no está habilitado en la configuración predeterminada de NetWeaver, Onapsis informó que está ampliamente activado en entornos de producción.


$ cat ./design_decisions.md

1. Elección del Payload — JSP "Hello World"

file_content = """<%@ page language="java" contentType="text/html; charset=UTF-8" ...%>
<h1>Hello World</h1>"""

¿Por qué JSP y no otro formato?

SAP NetWeaver AS Java ejecuta una JVM — los archivos .jsp son interpretados directamente por el contenedor de servlets (Apache Tomcat embebido) sin compilación previa. Esto convierte a JSP en el formato ideal para webshells en entornos Java.

La elección del contenido benigno ("Hello World") es deliberada para el PoC:

  • Valida la superficie vulnerable sin ejecutar código malicioso
  • Confirma la subida (código HTTP 200 + archivo accesible vía GET)
  • Evidencia forense limpia para el informe de pentest

En una explotación real, el contenido sería un webshell JSP con ejecución de comandos, ej:

<%
  String cmd = request.getParameter("cmd");
  Runtime.getRuntime().exec(cmd);
%>

2. multipart/form-data — ¿Por qué ese Content-Type?

files = {'file': (file_name, open(file_name, 'rb'), 'application/octet-stream')}

El endpoint espera una solicitud multipart/form-data — el mismo formato utilizado por los formularios HTML de subida de archivos. Esto es intencional en el diseño original de Visual Composer (subida de modelos de desarrollo).

La biblioteca requests construye automáticamente los boundaries del multipart cuando se pasa files= — el header Content-Type: multipart/form-data; boundary=... se genera internamente.

verify=False: deshabilita la validación del certificado TLS — necesario porque los entornos SAP frecuentemente usan certificados self-signed. En producción, usar verify='/path/to/ca-bundle.crt'.

3. Ruta del Endpoint — Anatomía de la URL

https://<host>:<port>/developmentserver/metadatauploader?CONTENTTYPE=MODEL&CLIENT=1
ComponenteSignificado
:50201Puerto predeterminado del SAP ICM (Internet Communication Manager) HTTPS
/developmentserver/Servlet de desarrollo de Visual Composer
metadatauploaderEndpoint específico de subida de metadatos
CONTENTTYPE=MODELTipo de contenido esperado por el endpoint
CLIENT=1Mandante SAP (client) — 000, 100, 001 son comunes

$ cat ./mitre_mapping.yml

tactic: Initial Access
  - T1190  # Exploit Public-Facing Application
            # Explotación del endpoint /developmentserver/metadatauploader
            # sin autenticación vía HTTP POST

tactic: Execution
  - T1505.003  # Server Software Component: Web Shell
               # Webshell JSP subido → ejecutado por el contenedor de servlets (Tomcat)

tactic: Persistence
  - T1505.003  # Web Shell como mecanismo de persistencia
               # El archivo JSP persiste en el filesystem del servidor entre reinicios

tactic: Defense Evasion
  - T1036      # Masquerading
               # Webshells nombrados como archivos legítimos de SAP (ej: metadata.jsp)

tactic: Discovery
  - T1082      # System Information Discovery
               # Post-RCE: enumerar procesos, usuarios, rutas SAP

tactic: Lateral Movement
  - T1210      # Exploitation of Remote Services
               # Acceso al stack ABAP, bases de datos conectadas vía RCE

tactic: Collection
  - T1005      # Data from Local System
               # Acceso directo a datos ERP (Finanzas, RRHH, Cadena de Suministro)

$ cat ./affected_versions.txt

Descargar herramienta