
PoC per CVE-2025-56399 - Caricamento file senza restrizioni che porta a RCE in alexusmai/laravel-file-manager (≤3.3.1). Automatizza il rilevamento, l'estrazione CSRF e il caricamento di file.
CWE-434: Caricamento senza restrizioni di file con tipo pericoloso
Punteggio CVSS: 8.5 (Alto)
Questo strumento fornisce un Proof of Concept (PoC) per CVE-2025-56399, una vulnerabilità critica in alexusmai/laravel-file-manager (versioni ≤ 3.3.1).
La vulnerabilità consente a un attaccante autenticato di ottenere esecuzione di codice in remoto (RCE) caricando un file appositamente creato, bypassando la validazione lato client e rinominandolo con estensione PHP.
Questo script automatizza l'intero processo:
| Attributo | Valore |
|---|---|
| Tipo di vulnerabilità | Caricamento file senza restrizioni → RCE |
| CWE | CWE-434 |
| Punteggio CVSS | 8.5 (Alto) |
| Vettore d'attacco | Rete |
| Complessità dell'attacco | Bassa |
| Privilegi richiesti | Bassi (autenticato) |
| Interazione utente | Attiva |
/file-manager).png contenente codice PHP.phpgit clone https://github.com/Jenderal92/laravel-filemanager-unrestricted-upload.git
cd laravel-filemanager-unrestricted-upload
pip install -r requirements.txt
Requisiti
· Python 2.7 · requests · colorama
📖 Utilizzo
python2 lfm.py list.txt
Formato del file list.txt
https://target1.com
https://target2.com
http://target3.com
Output
· valid.txt – Elenco di URL di shell validati (aggiungere ?shinday=1 per accedere)
Esempio di output:
https://target.com/storage/shxt_123456.php?shinday=1
🧪 Come funziona l'exploit
<meta name="csrf-token"> o da un campo input _token./file-manager/initialize per recuperare la configurazione del disco..htaccess (per bypassare le restrizioni) e poi il payload (shxt_<timestamp>.php) con un tipo MIME GIF.?shinday=1 restituisce la stringa 'Shinday'; se sì, la shell è valida e salvata in valid.txt.📂 Dettagli del payload
Il file PHP caricato è una web shell in un unico file che:
· Mostra le informazioni di sistema (php_uname)
· Fornisce un modulo di caricamento file (per aggiungere altri strumenti)
· Risponde al parametro ?shinday=1 con l'interfaccia completa della shell
· Altrimenti, restituisce un'immagine GIF89a valida per evitare il rilevamento
Accedere alla shell tramite:
https://target.com/path/to/shxt_123456.php?shinday=1
🛡️ Mitigazione
Per proteggersi da questa vulnerabilità:
alexusmai/laravel-file-manager con un'alternativa.Route::group(['middleware' => ['auth', 'admin']], function () {
// File Manager routes
});
composer remove alexusmai/laravel-file-manager
.htaccess nella directory di storage:
<FilesMatch "\.(php|phtml|php3|php4|php5|phar)$">
Deny from all
</FilesMatch>
📦 Versioni interessate
| Pacchetto | Versioni interessate |
|---|---|
| alexusmai/laravel-file-manager | ≤ 3.3.1 |
🔗 Riferimenti
· CVE-2025-56399 - NVD · Advisory GitHub · Database vulnerabilità Snyk · Voce VulDB · alexusmai/laravel-file-manager
📜 Dichiarazione di non responsabilità
ATTENZIONE: Questo strumento è solo per test di sicurezza educativi e autorizzati. Utilizzandolo, accetti di:
· Testare solo sistemi di tua proprietà o per cui hai esplicita autorizzazione · Non utilizzarlo per scopi malevoli · Rispettare tutte le leggi applicabili
L'autore non si assume alcuna responsabilità per qualsiasi uso improprio o danno causato.
Maggiori informazioni sulla dichiarazione di non responsabilità sono disponibili nella copertina di Jenderal92. Puoi verificarlo QUI !!!