Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-21546 — Kit di exploit automatizzato e template di rilevamento per CVE-2024-21546, una RCE non autenticata in UniSharp Laravel Filemanager, con evasione WAF e shell interattiva. | Kitploit
Strumenti/GitHubGitHub/digitalsurgn/cve-2024-21546
RicognizioneScanner di VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebSicurezza WebSviluppo Payload
GitHubdigitalsurgn/cve-2024-21546

CVE-2024-21546

Kit di exploit automatizzato e template di rilevamento per CVE-2024-21546, una RCE non autenticata in UniSharp Laravel Filemanager, con evasione WAF e shell interattiva.

Vedi Repository
10h 39m faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

UniSharp Laravel Filemanager RCE Non Autenticato (CVE-2024-21546)

Questo repository contiene strumenti di valutazione della sicurezza, template di rilevamento e un toolkit di exploit automatizzato per identificare e sfruttare Remote Code Execution (RCE) Non Autenticato in applicazioni che utilizzano il pacchetto UniSharp/laravel-filemanager (Versioni < 2.9.1).


📑 Indice dei Contenuti

  • 1. Panoramica della Vulnerabilità
  • 2. Analisi della Causa Radice
  • 3. Template di Rilevamento Nuclei (laravel-filemanager.yaml)
    • Perché i Template Predefiniti Falliscono sui Siti Localizzati
    • Specifica del Template Ricreato
    • Esecuzione della Scansione Nuclei
  • 4. Toolkit di Exploit Automatizzato (cve_2024_21546_rce.py)
    • Capacità dell'Exploit
    • Utilizzo e Parametri
    • Esempi
  • 5. Linee Guida per la Mitigazione

1. Panoramica della Vulnerabilità

La vulnerabilità deriva da due condizioni combinate:

  1. Accesso Non Autenticato alle Route: L'applicazione host registra le route /laravel-filemanager senza applicare la pipeline middleware 'auth' o 'web'.
  2. Bypass della Validazione dell'Estensione con Punto Finale: Il validatore di upload non riesce a sanificare correttamente i caratteri di punto finale (.), consentendo agli attaccanti di bypassare le blocklist dei file eseguibili e inserire script PHP nello storage pubblico.

2. Analisi della Causa Radice

A. Il Difetto del Validatore con Punto Finale (LfmUploadValidator.php)

Nelle versioni precedenti alla v2.9.1, LfmUploadValidator.php controllava le estensioni dei file rispetto a una blocklist utilizzando:

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;
}

Quando un attaccante carica un file denominato poc.php.:

  • Il metodo getClientOriginalExtension() di Symfony estrae i caratteri successivi al punto finale.
  • Poiché il nome del file termina con un punto, getClientOriginalExtension() restituisce "" (stringa vuota).
  • Il controllo in_array("", ['php', 'html']) restituisce false, bypassando il blocco delle estensioni.

B. Risoluzione Senza Estensione e Concatenazione di Rinomina

Su Windows e driver di storage specifici, il file viene salvato come hash senza estensione (<hash>). L'exploit concatena il RenameController di LFM (GET /laravel-filemanager/rename?file=<hash>&new_name=runner.php) per rinominare il payload caricato in un file .php attivo, garantendo l'esecuzione web immediata sotto /storage/app/public/file-manager-files/items/runner.php.


3. Template di Rilevamento Nuclei (laravel-filemanager.yaml)

Perché i Template Predefiniti Falliscono sui Siti Localizzati

Il template della community upstream (http/exposed-panels/laravel-filemanager.yaml) (https://github.com/projectdiscovery/nuclei-templates/blob/main/http/exposed-panels/laravel-filemanager.yaml) si basava su un matcher di stringhe inglesi hardcoded:

root@kitploit:~
matchers:
  - type: word
    words:
      - "Laravel FileManager" # Fallisce su deployment localizzati o versioni non inglesi

Quando le applicazioni sono localizzate (es. arabo, francese, cinese), la stringa inglese non è presente nel corpo HTML, causando falsi negativi.

Specifica del Template Ricreato

Il template modernizzato rileva il pannello confrontando percorsi immutabili degli asset del vendor e azioni del form di upload:

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

Esecuzione della Scansione Nuclei

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

4. Toolkit di Exploit Automatizzato (cve_2024_21546_rce.py)

Lo strumento Python autonomo (cve_2024_21546_rce.py) automatizza lo sfruttamento non autenticato end-to-end con evasione WAF integrata e igiene di auto-pulizia.

Capacità dell'Exploit

  • Auto-Negoziazione di Protocollo e Porta: Scopre automaticamente se il target utilizza HTTP o HTTPS e supporta porte personalizzate non standard.
  • Verifica di Accesso Pre-Volo: Conferma che /laravel-filemanager sia accessibile senza autenticazione prima di tentare lo sfruttamento.
  • Tracciamento Dinamico dei File: Acquisisce snapshot prima/dopo degli elenchi di directory (jsonitems) per identificare l'hash caricato senza fare affidamento su nomi di cartelle o file hardcoded.
  • Evasione WAF: Utilizza tag brevi PHP (<?=), invocazione dinamica di funzioni (('pas'.'sthru')) e header X-Cmd codificati in Base64 per eludere le regole di ispezione.
  • Modalità Shell Interattiva: Supporta sessioni di shell interattive continue (--interactive).
  • Auto-Pulizia a Impronta Zero: Elimina automaticamente la webshell rilasciata dopo ogni esecuzione di comando.

Utilizzo e Parametri

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

Esempi

1. Modalità Interattiva (Richiede target, porta e comando)

root@kitploit:~
python3 cve_2024_21546_rce.py

2. Esecuzione di Comando Singolo (CLI)

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

3. Porta Non Standard Personalizzata con Shell Interattiva

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

5. Linee Guida per la Mitigazione

  1. Aggiornare il Pacchetto: Aggiornare unisharp/laravel-filemanager alla versione 2.9.1 o successiva tramite Composer:
    root@kitploit:~
    composer update unisharp/laravel-filemanager
    
  2. Applicare il Middleware di Autenticazione: Assicurarsi che tutte le route del filemanager siano protette da autenticazione in config/lfm.php:
    root@kitploit:~
    'middlewares' => ['web', 'auth'],
    
  3. Limitare lo Storage Pubblico: Configurare le regole del server web per negare l'esecuzione di script .php nelle directory di upload pubbliche (es. /storage/).
Scarica lo strumento
MetricaDettagli
Nome della VulnerabilitàUniSharp Laravel Filemanager Upload Non Restrittivo a RCE
Identificatore CVECVE-2024-21546
Componente Interessatounisharp/laravel-filemanager (< 2.9.1)
Debolezza ComuneCWE-94 (Iniezione di Codice) / CWE-434 (Upload Non Restrittivo)
GravitàCritica (CVSS 9.8)
Vettore di AttaccoHTTP Remoto / Non Autenticato
FlagParametroDescrizione
-t, --target<host>Dominio o indirizzo IP del target (es. example.com o 192.168.1.50).
-p, --port<porta>Porta del target se diversa dalle standard 80/443 (es. 8080, 8443).
--schemehttp / httpsSpecifica esplicitamente lo schema del protocollo (predefinito: rilevamento automatico).
-c, --cmd<comando>Singolo comando da eseguire (es. whoami, id, ipconfig).
-i, --interactiveflagAvvia una shell interattiva di esecuzione comandi.
-d, --dir<percorso>Directory di lavoro LFM del target (predefinito: /items).