Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/digitalsurgn/cve-2024-21546
ReconnaissanceScanners de VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebSécurité WebDéveloppement de Charges Utiles
GitHubdigitalsurgn/cve-2024-21546

CVE-2024-21546

Boîte à outils d'exploitation automatisée et modèle de détection pour CVE-2024-21546, une RCE non authentifiée dans UniSharp Laravel Filemanager, avec contournement du WAF et shell interactif.

Voir le dépôt
il y a 10h 40mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Exploitation RCE non authentifiée d'UniSharp Laravel Filemanager (CVE-2024-21546)

Ce dépôt contient des outils d'évaluation de sécurité, des modèles de détection et une boîte à outils d'exploitation automatisée pour identifier et exploiter l'Exécution de Code à Distance (RCE) non authentifiée dans les applications utilisant le paquet UniSharp/laravel-filemanager (Versions < 2.9.1).


📑 Table des matières

  • 1. Présentation de la vulnérabilité
  • 2. Analyse de la cause racine
  • 3. Modèle de détection Nuclei (laravel-filemanager.yaml)
    • Pourquoi les modèles par défaut échouent sur les sites localisés
    • Spécification du modèle recréé
    • Exécution du scan Nuclei
  • 4. Boîte à outils d'exploitation automatisée (cve_2024_21546_rce.py)
    • Capacités d'exploitation
    • Utilisation et paramètres
    • Exemples
  • 5. Recommandations de remédiation

1. Présentation de la vulnérabilité

La vulnérabilité découle de deux conditions combinées :

  1. Accès aux routes non authentifié : L'application hôte enregistre les routes /laravel-filemanager sans appliquer le pipeline de middleware 'auth' ou 'web'.
  2. Contournement de la validation d'extension par point final : Le validateur de téléversement ne parvient pas à assainir correctement les caractères de point final (.), permettant aux attaquants de contourner les listes noires de fichiers exécutables et de placer des scripts PHP dans le stockage public.

2. Analyse de la cause racine

A. La faille du validateur de point final (LfmUploadValidator.php)

Dans les versions antérieures à v2.9.1, LfmUploadValidator.php vérifiait les extensions de fichiers par rapport à une liste noire en utilisant :

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

Lorsqu'un attaquant téléverse un fichier nommé poc.php. :

  • La méthode getClientOriginalExtension() de Symfony extrait les caractères suivant le point final.
  • Comme le nom de fichier se termine par un point, getClientOriginalExtension() évalue à "" (chaîne vide).
  • La vérification in_array("", ['php', 'html']) évalue à false, contournant ainsi le blocage d'extension.

B. Résolution sans extension et chaînage de renommage

Sur Windows et certains pilotes de stockage, le fichier est persisté sous forme de hachage sans extension (<hash>). L'exploit chaîne le RenameController de LFM (GET /laravel-filemanager/rename?file=<hash>&new_name=runner.php) pour renommer la charge utile téléversée en un fichier .php actif, permettant une exécution web immédiate sous /storage/app/public/file-manager-files/items/runner.php.


3. Modèle de détection Nuclei (laravel-filemanager.yaml)

Pourquoi les modèles par défaut échouent sur les sites localisés

Le modèle communautaire en amont (http/exposed-panels/laravel-filemanager.yaml) (https://github.com/projectdiscovery/nuclei-templates/blob/main/http/exposed-panels/laravel-filemanager.yaml) reposait sur un matcher de chaîne anglaise codé en dur :

root@kitploit:~
matchers:
  - type: word
    words:
      - "Laravel FileManager" # Échoue sur les déploiements localisés ou les versions non anglaises

Lorsque les applications sont localisées (par exemple en arabe, français, chinois), la chaîne anglaise n'est pas présente dans le corps HTML, ce qui provoque des faux négatifs.

Spécification du modèle recréé

Le modèle modernisé détecte le panneau en faisant correspondre les chemins d'actifs du fournisseur immuables et les actions du formulaire de téléversement :

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

Exécution du scan Nuclei

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

4. Boîte à outils d'exploitation automatisée (cve_2024_21546_rce.py)

L'outil Python autonome (cve_2024_21546_rce.py) automatise l'exploitation non authentifiée de bout en bout avec contournement WAF intégré et hygiène d'auto-nettoyage.

Capacités d'exploitation

  • Négociation automatique du protocole et du port : Découvre automatiquement si la cible utilise HTTP ou HTTPS et prend en charge les ports personnalisés non standard.
  • Vérification d'accès avant vol : Confirme que /laravel-filemanager est accessible sans authentification avant de tenter l'exploitation.
  • Suivi dynamique des fichiers : Prend des instantanés avant/après des listes de répertoires (jsonitems) pour identifier le hachage téléversé sans dépendre de noms de dossiers ou de fichiers codés en dur.
  • Contournement WAF : Utilise des balises courtes PHP (<?=), l'invocation dynamique de fonctions (('pas'.'sthru')) et des en-têtes X-Cmd encodés en Base64 pour contourner les règles d'inspection.
  • Mode shell interactif : Prend en charge les sessions shell interactives continues (--interactive).
  • Auto-nettoyage sans empreinte : Supprime automatiquement le webshell déposé après chaque exécution de commande.

Utilisation et paramètres

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

Exemples

1. Mode interactif (Demande la cible, le port et la commande)

root@kitploit:~
python3 cve_2024_21546_rce.py

2. Exécution d'une commande unique (CLI)

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

3. Port non standard personnalisé avec shell interactif

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

5. Recommandations de remédiation

  1. Mettre à niveau le paquet : Mettez à jour unisharp/laravel-filemanager vers la version 2.9.1 ou ultérieure via Composer :
    root@kitploit:~
    composer update unisharp/laravel-filemanager
    
  2. Appliquer le middleware d'authentification : Assurez-vous que toutes les routes du gestionnaire de fichiers sont protégées par une authentification dans config/lfm.php :
    root@kitploit:~
    'middlewares' => ['web', 'auth'],
    
  3. Restreindre le stockage public : Configurez les règles du serveur web pour refuser l'exécution des scripts .php dans les répertoires de téléversement publics (par exemple /storage/).
Télécharger l’outil
MétriqueDétails
Nom de la vulnérabilitéUniSharp Laravel Filemanager - Téléversement de fichier sans restriction menant à une RCE
Identifiant CVECVE-2024-21546
Composant affectéunisharp/laravel-filemanager (< 2.9.1)
Faiblesse couranteCWE-94 (Injection de code) / CWE-434 (Téléversement sans restriction)
SévéritéCritique (CVSS 9.8)
Vecteur d'attaqueHTTP distant / non authentifié
OptionParamètreDescription
-t, --target<hôte>Domaine ou adresse IP cible (par exemple example.com ou 192.168.1.50).
-p, --port<port>Port cible s'il diffère des ports standard 80/443 (par exemple 8080, 8443).
--schemehttp / httpsSpécifie explicitement le schéma de protocole (défaut : détection automatique).
-c, --cmd<commande>Commande unique à exécuter (par exemple whoami, id, ipconfig).
-i, --interactiveoptionLance un shell interactif d'exécution de commandes.
-d, --dir<chemin>Répertoire de travail LFM cible (défaut : /items).