Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2024-21546 — Automatisiertes Exploit-Toolkit und Erkennungsvorlage für CVE-2024-21546, eine nicht authentifizierte RCE in UniSharp Laravel Filemanager, mit WAF-Umgehung und interaktiver Shell. | Kitploit
Tools/GitHubGitHub/digitalsurgn/cve-2024-21546
AufklärungSchwachstellenscannerCode-AnalyseExploitationWebanwendungs-ExploitationWebsicherheitPayload-Entwicklung
GitHubdigitalsurgn/cve-2024-21546

CVE-2024-21546

Automatisiertes Exploit-Toolkit und Erkennungsvorlage für CVE-2024-21546, eine nicht authentifizierte RCE in UniSharp Laravel Filemanager, mit WAF-Umgehung und interaktiver Shell.

Repository anzeigen
vor 10h 39mNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

UniSharp Laravel Filemanager Unauthenticated RCE (CVE-2024-21546)

Dieses Repository enthält Sicherheitsbewertungswerkzeuge, Erkennungsvorlagen und ein automatisiertes Exploit-Toolkit zur Identifizierung und Ausnutzung von Unauthenticated Remote Code Execution (RCE) in Anwendungen, die das Paket UniSharp/laravel-filemanager (Versionen < 2.9.1) verwenden.


📑 Inhaltsverzeichnis

  • 1. Schwachstellenübersicht
  • 2. Root-Cause-Analyse
  • 3. Nuclei-Erkennungsvorlage (laravel-filemanager.yaml)
    • Warum Standardvorlagen bei lokalisierten Websites fehlschlagen
    • Spezifikation der neu erstellten Vorlage
    • Ausführen des Nuclei-Scans
  • 4. Automatisiertes Exploit-Toolkit (cve_2024_21546_rce.py)
    • Exploit-Fähigkeiten
    • Verwendung & Parameter
    • Beispiele
  • 5. Behebungsempfehlungen

1. Schwachstellenübersicht

Die Schwachstelle resultiert aus zwei kombinierten Bedingungen:

  1. Unauthentifizierter Routenzugriff: Die Host-Anwendung registriert /laravel-filemanager-Routen, ohne die 'auth'- oder 'web'-Middleware-Pipeline anzuwenden.
  2. Umgehung der Erweiterungsvalidierung durch nachgestellte Punkte: Der Upload-Validator bereinigt nachgestellte Punktzeichen (.) nicht ordnungsgemäß, sodass Angreifer Blocklisten für ausführbare Dateien umgehen und PHP-Skripte im öffentlichen Speicher platzieren können.

2. Root-Cause-Analyse

A. Der Validator-Fehler mit nachgestellten Punkten (LfmUploadValidator.php)

In Versionen vor v2.9.1 prüfte LfmUploadValidator.php Dateierweiterungen gegen eine Blockliste mit:

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

Wenn ein Angreifer eine Datei namens poc.php. hochlädt:

  • Symfony's getClientOriginalExtension() extrahiert Zeichen nach dem letzten Punkt.
  • Da der Dateiname mit einem Punkt endet, ergibt getClientOriginalExtension() "" (leerer String).
  • Die Prüfung in_array("", ['php', 'html']) ergibt false und umgeht damit die Erweiterungsblockliste.

B. Erweiterungslose Auflösung & Umbenennungs-Verkettung

Unter Windows und bestimmten Speichertreibern wird die Datei als erweiterungsloser Hash (<hash>) gespeichert. Der Exploit verkettet LFM's RenameController (GET /laravel-filemanager/rename?file=<hash>&new_name=runner.php), um die hochgeladene Payload in eine aktive .php-Datei umzubenennen, was eine sofortige Web-Ausführung unter /storage/app/public/file-manager-files/items/runner.php ermöglicht.


3. Nuclei-Erkennungsvorlage (laravel-filemanager.yaml)

Warum Standardvorlagen bei lokalisierten Websites fehlschlagen

Die Upstream-Community-Vorlage (http/exposed-panels/laravel-filemanager.yaml) (https://github.com/projectdiscovery/nuclei-templates/blob/main/http/exposed-panels/laravel-filemanager.yaml) basierte auf einem fest codierten englischen String-Matcher:

root@kitploit:~
matchers:
  - type: word
    words:
      - "Laravel FileManager" # Schlägt bei lokalisierten Bereitstellungen oder nicht-englischen Versionen fehl

Wenn Anwendungen lokalisiert sind (z. B. Arabisch, Französisch, Chinesisch), ist der englische String nicht im HTML-Body vorhanden, was zu falsch-negativen Ergebnissen führt.

Spezifikation der neu erstellten Vorlage

Die modernisierte Vorlage erkennt das Panel durch Abgleich unveränderlicher Vendor-Asset-Pfade und Upload-Formularaktionen:

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

Ausführen des Nuclei-Scans

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

4. Automatisiertes Exploit-Toolkit (cve_2024_21546_rce.py)

Das eigenständige Python-Tool (cve_2024_21546_rce.py) automatisiert die End-to-End-Unauthenticated-Ausnutzung mit integrierter WAF-Umgehung und Selbstreinigungs-Hygiene.

Exploit-Fähigkeiten

  • Protokoll- & Port-Autoverhandlung: Erkennt automatisch, ob das Ziel HTTP oder HTTPS verwendet, und unterstützt nicht standardmäßige benutzerdefinierte Ports.
  • Pre-Flight-Zugriffsverifizierung: Bestätigt, dass /laravel-filemanager ohne Authentifizierung zugänglich ist, bevor ein Exploit-Versuch unternommen wird.
  • Dynamische Dateiverfolgung: Erstellt Vorher/Nachher-Snapshots der Verzeichnislisten (jsonitems), um den hochgeladenen Hash zu identifizieren, ohne auf fest codierte Ordner- oder Dateinamen angewiesen zu sein.
  • WAF-Umgehung: Verwendet PHP-Short-Tags (<?=), dynamische Funktionsaufrufe (('pas'.'sthru')) und Base64-codierte X-Cmd-Header, um Inspektionsregeln zu umgehen.
  • Interaktiver Shell-Modus: Unterstützt kontinuierliche interaktive Shell-Sitzungen (--interactive).
  • Zero-Footprint-Autobereinigung: Löscht automatisch die abgelegte Webshell nach jeder Befehlsausführung.

Verwendung & Parameter

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

Beispiele

1. Interaktiver Modus (Fragt nach Ziel, Port und Befehl)

root@kitploit:~
python3 cve_2024_21546_rce.py

2. Einzelne Befehlsausführung (CLI)

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

3. Benutzerdefinierter Nicht-Standard-Port mit interaktiver Shell

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

5. Behebungsempfehlungen

  1. Paket aktualisieren: Aktualisieren Sie unisharp/laravel-filemanager auf Version 2.9.1 oder höher über Composer:
    root@kitploit:~
    composer update unisharp/laravel-filemanager
    
  2. Authentifizierungs-Middleware erzwingen: Stellen Sie sicher, dass alle Filemanager-Routen in config/lfm.php durch Authentifizierung geschützt sind:
    root@kitploit:~
    'middlewares' => ['web', 'auth'],
    
  3. Öffentlichen Speicher einschränken: Konfigurieren Sie Webserver-Regeln, um die Ausführung von .php-Skripten in öffentlichen Upload-Verzeichnissen (z. B. /storage/) zu verweigern.
Tool herunterladen
MetrikDetails
Name der SchwachstelleUniSharp Laravel Filemanager Unrestricted File Upload zu RCE
CVE-KennungCVE-2024-21546
Betroffene Komponenteunisharp/laravel-filemanager (< 2.9.1)
Allgemeine SchwächeCWE-94 (Code Injection) / CWE-434 (Unrestricted Upload)
SchweregradKritisch (CVSS 9.8)
AngriffsvektorRemote / Unauthenticated HTTP
FlagParameterBeschreibung
-t, --target<host>Ziel-Domain oder IP-Adresse (z. B. example.com oder 192.168.1.50).
-p, --port<port>Ziel-Port, falls abweichend von Standard 80/443 (z. B. 8080, 8443).
--schemehttp / httpsProtokollschema explizit angeben (Standard: automatisch erkannt).
-c, --cmd<command>Einzelner auszuführender Befehl (z. B. whoami, id, ipconfig).
-i, --interactiveFlagStartet eine interaktive Befehlsausführungs-Shell.
-d, --dir<path>Ziel-LFM-Arbeitsverzeichnis (Standard: /items).