Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-21546 — Kit de exploração automatizado e modelo de detecção para CVE-2024-21546, uma RCE não autenticada no UniSharp Laravel Filemanager, com evasão de WAF e shell interativo. | Kitploit
Ferramentas/GitHubGitHub/digitalsurgn/cve-2024-21546
ReconhecimentoScanners de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebSegurança WebDesenvolvimento de Payloads
GitHubdigitalsurgn/cve-2024-21546

CVE-2024-21546

Kit de exploração automatizado e modelo de detecção para CVE-2024-21546, uma RCE não autenticada no UniSharp Laravel Filemanager, com evasão de WAF e shell interativo.

Ver Repositório
há 11h 7mAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

UniSharp Laravel Filemanager RCE Não Autenticado (CVE-2024-21546)

Este repositório contém ferramentas de avaliação de segurança, modelos de detecção e um kit de exploração automatizado para identificar e explorar Execução Remota de Código (RCE) Não Autenticada em aplicações que utilizam o pacote UniSharp/laravel-filemanager (Versões < 2.9.1).


📑 Índice

  • 1. Visão Geral da Vulnerabilidade
  • 2. Análise da Causa Raiz
  • 3. Modelo de Detecção Nuclei (laravel-filemanager.yaml)
    • Por que os Modelos Padrão Falham em Sites Localizados
    • Especificação do Modelo Recriado
    • Executando o Scan Nuclei
  • 4. Kit de Exploração Automatizado (cve_2024_21546_rce.py)
    • Capacidades de Exploração
    • Uso e Parâmetros
    • Exemplos
  • 5. Orientações de Remediação

1. Visão Geral da Vulnerabilidade

A vulnerabilidade decorre de duas condições combinadas:

  1. Acesso a Rota Não Autenticada: A aplicação host registra as rotas /laravel-filemanager sem aplicar o pipeline de middleware 'auth' ou 'web'.
  2. Bypass de Validação de Extensão com Ponto Final: O validador de upload não sanitiza adequadamente caracteres de ponto final (.), permitindo que atacantes contornem as listas de bloqueio de arquivos executáveis e coloquem scripts PHP no armazenamento público.

2. Análise da Causa Raiz

A. A Falha do Validador de Ponto Final (LfmUploadValidator.php)

Em versões anteriores à v2.9.1, o LfmUploadValidator.php verificava as extensões de arquivo contra uma lista de bloqueio 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;
}

Quando um atacante envia um arquivo chamado poc.php.:

  • O getClientOriginalExtension() do Symfony extrai os caracteres após o ponto final.
  • Como o nome do arquivo termina em um ponto, o getClientOriginalExtension() avalia para "" (string vazia).
  • A verificação in_array("", ['php', 'html']) avalia para false, contornando o bloqueio de extensão.

B. Resolução Sem Extensão e Encadeamento de Renomeação

No Windows e em drivers de armazenamento específicos, o arquivo é persistido como um hash sem extensão (<hash>). A exploração encadeia o RenameController do LFM (GET /laravel-filemanager/rename?file=<hash>&new_name=runner.php) para renomear o payload enviado para um arquivo .php ativo, concedendo execução web imediata sob /storage/app/public/file-manager-files/items/runner.php.


3. Modelo de Detecção Nuclei (laravel-filemanager.yaml)

Por que os Modelos Padrão Falham em Sites Localizados

O modelo da comunidade upstream (http/exposed-panels/laravel-filemanager.yaml) (https://github.com/projectdiscovery/nuclei-templates/blob/main/http/exposed-panels/laravel-filemanager.yaml) dependia de um correspondente de string em inglês codificado:

root@kitploit:~
matchers:
  - type: word
    words:
      - "Laravel FileManager" # Falha em implantações localizadas ou versões não inglesas

Quando as aplicações são localizadas (ex.: árabe, francês, chinês), a string em inglês não está presente no corpo HTML, causando falsos negativos.

Especificação do Modelo Recriado

O modelo modernizado detecta o painel correspondendo a caminhos de ativos de fornecedores imutáveis e ações de formulário de 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

Executando o Scan Nuclei

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

4. Kit de Exploração Automatizado (cve_2024_21546_rce.py)

A ferramenta Python independente (cve_2024_21546_rce.py) automatiza a exploração não autenticada de ponta a ponta com evasão de WAF integrada e higiene de autolimpeza.

Capacidades de Exploração

  • Negociação Automática de Protocolo e Porta: Descobre automaticamente se o alvo usa HTTP ou HTTPS e suporta portas personalizadas não padrão.
  • Verificação de Acesso Pré-Voo: Confirma que /laravel-filemanager está acessível sem autenticação antes de tentar a exploração.
  • Rastreamento Dinâmico de Arquivos: Tira snapshots antes/depois das listagens de diretórios (jsonitems) para identificar o hash enviado sem depender de nomes de pasta ou arquivo codificados.
  • Evasão de WAF: Usa tags curtas PHP (<?=), invocação dinâmica de funções (('pas'.'sthru')) e cabeçalhos X-Cmd codificados em Base64 para evadir regras de inspeção.
  • Modo Shell Interativo: Suporta sessões de shell interativas contínuas (--interactive).
  • Autolimpeza Sem Deixar Rastros: Exclui automaticamente o webshell implantado após cada execução de comando.

Uso e Parâmetros

root@kitploit:~
python3 cve_2024_21546_rce.py [OPÇÕES]

Exemplos

1. Modo Interativo (Solicita alvo, porta e comando)

root@kitploit:~
python3 cve_2024_21546_rce.py

2. Execução de Comando Único (CLI)

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

3. Porta Não Padrão Personalizada com Shell Interativo

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

5. Orientações de Remediação

  1. Atualize o Pacote: Atualize unisharp/laravel-filemanager para a versão 2.9.1 ou posterior via Composer:
    root@kitploit:~
    composer update unisharp/laravel-filemanager
    
  2. Imponha Middleware de Autenticação: Garanta que todas as rotas do filemanager estejam protegidas por autenticação em config/lfm.php:
    root@kitploit:~
    'middlewares' => ['web', 'auth'],
    
  3. Restrinja o Armazenamento Público: Configure regras do servidor web para negar a execução de scripts .php em diretórios públicos de upload (ex.: /storage/).
Baixar ferramenta
MétricaDetalhes
Nome da VulnerabilidadeUniSharp Laravel Filemanager Upload Irrestrito de Arquivos para RCE
Identificador CVECVE-2024-21546
Componente Afetadounisharp/laravel-filemanager (< 2.9.1)
Fraqueza ComumCWE-94 (Injeção de Código) / CWE-434 (Upload Irrestrito)
SeveridadeCrítica (CVSS 9.8)
Vetor de AtaqueHTTP Remoto / Não Autenticado
FlagParâmetroDescrição
-t, --target<host>Domínio ou endereço IP alvo (ex.: example.com ou 192.168.1.50).
-p, --port<porta>Porta alvo se diferente do padrão 80/443 (ex.: 8080, 8443).
--schemehttp / httpsEspecifica explicitamente o esquema de protocolo (padrão: detecção automática).
-c, --cmd<comando>Comando único para executar (ex.: whoami, id, ipconfig).
-i, --interactiveflagInicia um shell interativo de execução de comandos.
-d, --dir<caminho>Diretório de trabalho LFM alvo (padrão: /items).