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-2024-21546 — Kit de explotación automatizado y plantilla de detección para CVE-2024-21546, una RCE no autenticada en UniSharp Laravel Filemanager, con evasión de WAF y shell interactiva. | Kitploit
Herramientas/GitHubGitHub/digitalsurgn/cve-2024-21546
ReconocimientoEscáneres de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebSeguridad WebDesarrollo de Payloads
GitHubdigitalsurgn/cve-2024-21546

CVE-2024-21546

Kit de explotación automatizado y plantilla de detección para CVE-2024-21546, una RCE no autenticada en UniSharp Laravel Filemanager, con evasión de WAF y shell interactiva.

Ver Repositorio
hace 10h 39mAú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

UniSharp Laravel Filemanager RCE No Autenticado (CVE-2024-21546)

Este repositorio contiene herramientas de evaluación de seguridad, plantillas de detección y un kit de explotación automatizado para identificar y explotar Ejecución Remota de Código (RCE) No Autenticada en aplicaciones que utilizan el paquete UniSharp/laravel-filemanager (Versiones < 2.9.1).


📑 Tabla de Contenidos

  • 1. Resumen de la Vulnerabilidad
  • 2. Análisis de Causa Raíz
  • 3. Plantilla de Detección Nuclei (laravel-filemanager.yaml)
    • Por Qué las Plantillas Predeterminadas Fallan en Sitios Localizados
    • Especificación de la Plantilla Recreada
    • Ejecutar el Escaneo Nuclei
  • 4. Kit de Explotación Automatizado (cve_2024_21546_rce.py)
    • Capacidades de Explotación
    • Uso y Parámetros
    • Ejemplos
  • 5. Guía de Remediación

1. Resumen de la Vulnerabilidad

La vulnerabilidad se origina de dos condiciones combinadas:

  1. Acceso a Rutas No Autenticado: La aplicación anfitriona registra las rutas /laravel-filemanager sin aplicar la tubería de middleware 'auth' o 'web'.
  2. Omisión de Validación de Extensión con Punto Final: El validador de carga no sanea adecuadamente los caracteres de punto final (.), permitiendo a los atacantes omitir las listas negras de archivos ejecutables y colocar scripts PHP en el almacenamiento público.

2. Análisis de Causa Raíz

A. La Fallo del Validador de Punto Final (LfmUploadValidator.php)

En versiones anteriores a v2.9.1, LfmUploadValidator.php verificaba las extensiones de archivo contra una lista negra usando:

root@kitploit:~
public function extensionIsNotExcutable($unallowed_extensions)
{
    $extension = strtolower($this->file->getClientOriginalExtension());
    if (in_array($extension, $unallowed_extensions)) {
        throw new \Exception('File extension is not allowed.');
    }
    return $this;
}

Cuando un atacante sube un archivo llamado poc.php.:

  • El getClientOriginalExtension() de Symfony extrae los caracteres que siguen al punto final.
  • Dado que el nombre del archivo termina en un punto, getClientOriginalExtension() evalúa a "" (cadena vacía).
  • La verificación in_array("", ['php', 'html']) evalúa a false, omitiendo el bloqueo de extensión.

B. Resolución Sin Extensión y Encadenamiento de Renombrado

En Windows y controladores de almacenamiento específicos, el archivo se persiste como un hash sin extensión (<hash>). El exploit encadena el RenameController de LFM (GET /laravel-filemanager/rename?file=<hash>&new_name=runner.php) para renombrar la carga útil subida a un archivo .php activo, otorgando ejecución web inmediata bajo /storage/app/public/file-manager-files/items/runner.php.


3. Plantilla de Detección Nuclei (laravel-filemanager.yaml)

Por Qué las Plantillas Predeterminadas Fallan en Sitios Localizados

La plantilla comunitaria upstream (http/exposed-panels/laravel-filemanager.yaml) (https://github.com/projectdiscovery/nuclei-templates/blob/main/http/exposed-panels/laravel-filemanager.yaml) dependía de un comparador de cadenas en inglés codificado:

root@kitploit:~
matchers:
  - type: word
    words:
      - "Laravel FileManager" # Fails on localized deployments or non english versions

Cuando las aplicaciones están localizadas (por ejemplo, árabe, francés, chino), la cadena en inglés no está presente en el cuerpo HTML, causando falsos negativos.

Especificación de la Plantilla Recreada

La plantilla modernizada detecta el panel comparando rutas de activos de proveedor inmutables y acciones de formulario de carga:

root@kitploit:~
id: laravel-filemanager

info:
  name: Laravel File Manager - Panel Detect
  author: digitalsurgn
  severity: critical
  description: Laravel File Manager panel was detected.
  reference:
    - https://github.com/UniSharp/laravel-filemanager
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N
    cwe-id: CWE-200
  metadata:
    max-request: 1
  tags: panel,laravel,filemanager,fileupload,intrusive

http:
  - method: GET
    path:
      - "{{BaseURL}}/laravel-filemanager?type=Files"

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "vendor/laravel-filemanager"
          - "laravel-filemanager/upload"
        condition: or

      - type: status
        status:
          - 200

Ejecutar el Escaneo Nuclei

root@kitploit:~
nuclei -u https://target.com/ -t laravel-filemanager.yaml

4. Kit de Explotación Automatizado (cve_2024_21546_rce.py)

La herramienta Python independiente (cve_2024_21546_rce.py) automatiza la explotación no autenticada de extremo a extremo con evasión de WAF integrada e higiene de autolimpieza.

Capacidades de Explotación

  • Negociación Automática de Protocolo y Puerto: Descubre automáticamente si el objetivo usa HTTP o HTTPS y soporta puertos personalizados no estándar.
  • Verificación de Acceso Pre-Vuelo: Confirma que /laravel-filemanager es accesible sin autenticación antes de intentar la explotación.
  • Seguimiento Dinámico de Archivos: Toma instantáneas antes/después de los listados de directorio (jsonitems) para identificar el hash subido sin depender de nombres de carpeta o archivo codificados.
  • Evasión de WAF: Usa etiquetas cortas de PHP (<?=), invocación dinámica de funciones (('pas'.'sthru')) y cabeceras X-Cmd codificadas en Base64 para evadir reglas de inspección.
  • Modo Shell Interactivo: Soporta sesiones de shell interactivas continuas (--interactive).
  • Autolimpieza de Cero Huella: Elimina automáticamente el webshell colocado después de cada ejecución de comando.

Uso y Parámetros

root@kitploit:~
python3 cve_2024_21546_rce.py [OPCIONES]

Ejemplos

1. Modo Interactivo (Solicita objetivo, puerto y comando)

root@kitploit:~
python3 cve_2024_21546_rce.py

2. Ejecución de Comando Único (CLI)

root@kitploit:~
python3 cve_2024_21546_rce.py -t xyz.com -c "whoami"

3. Puerto No Estándar Personalizado con Shell Interactivo

root@kitploit:~
python3 cve_2024_21546_rce.py -t 10.10.10.50 -p 8080 --interactive

5. Guía de Remediación

  1. Actualizar el Paquete: Actualizar unisharp/laravel-filemanager a la versión 2.9.1 o posterior vía Composer:
    root@kitploit:~
    composer update unisharp/laravel-filemanager
    
  2. Aplicar Middleware de Autenticación: Asegurar que todas las rutas del filemanager estén protegidas por autenticación en config/lfm.php:
    root@kitploit:~
    'middlewares' => ['web', 'auth'],
    
  3. Restringir el Almacenamiento Público: Configurar reglas del servidor web para denegar la ejecución de scripts .php en directorios de carga públicos (por ejemplo, /storage/).
Descargar herramienta
MétricaDetalles
Nombre de la VulnerabilidadUniSharp Laravel Filemanager Carga de Archivos Sin Restricciones a RCE
Identificador CVECVE-2024-21546
Componente Afectadounisharp/laravel-filemanager (< 2.9.1)
Debilidad ComúnCWE-94 (Inyección de Código) / CWE-434 (Carga Sin Restricciones)
SeveridadCrítica (CVSS 9.8)
Vector de AtaqueHTTP Remoto / No Autenticado
BanderaParámetroDescripción
-t, --target<host>Dominio o dirección IP objetivo (por ejemplo, example.com o 192.168.1.50).
-p, --port<puerto>Puerto objetivo si es diferente de 80/443 estándar (por ejemplo, 8080, 8443).
--schemehttp / httpsEspecificar explícitamente el esquema de protocolo (predeterminado: auto-detectado).
-c, --cmd<comando>Comando único a ejecutar (por ejemplo, whoami, id, ipconfig).
-i, --interactivebanderaLanzar un shell de ejecución de comandos interactivo.
-d, --dir<ruta>Directorio de trabajo LFM objetivo (predeterminado: /items).