
Escáner de cve-2026-48907
Escáner autónomo de un solo archivo para Joomla! JCE Editor < 2.9.99.5 — Ejecución remota de código no autenticada (CVE-2026-48907)
Autor: Alma
[!CAUTION]
🚨 DESCARGO DE RESPONSABILIDAD — LEA ANTES DE USAR
ESTA ES UNA HERRAMIENTA DE PRUEBA DE SEGURIDAD INTRUSIVA.
THIS TOOL IS FOR AUTHORIZED SECURITY ASSESSMENTS ONLY.
Scanning systems you do NOT own or have WRITTEN PERMISSION to test is ILLEGAL in most jurisdictions.
The author (Hussein Mohamed masta ghimau) accepts ABSOLUTELY NO liability for any misuse, damage, legal action, or data loss arising from the use of this tool.
By running this scanner you agree to:
Only scan assets YOU OWN or have EXPLICIT WRITTEN CONSENT.
Understand that uploads a harmless POC PHP file to the target server as part of the intrusive accuracy check.
Manually delete every uploaded POC file immediately after use.
USE AT YOUR OWN RISK.
[!IMPORTANT] Por qué "intrusivo" importa para la precisión: Para lograr la máxima confianza y eliminar falsos positivos, esta herramienta realiza una prueba de verificación matemática en vivo. Carga una línea segura de PHP como prueba de concepto y luego confirma la ejecución remota de código verificando el resultado matemático exacto devuelto por el servidor. Los escáneres no intrusivos que solo leen cadenas de versión pueden pasar por alto parches retrotraídos o correcciones personalizadas. Por lo tanto, es intrusivo por diseño — úselo con sabiduría y con autorización completa.
masta-cve-2026-48907.py es un escáner Python completamente original, de un solo archivo diseñado para detectar CVE-2026-48907 en instancias de Joomla! que ejecutan el componente JCE Editor en versiones anteriores a 2.9.99.5.
requests/httpx..py que puede colocar en cualquier lugar.openpyxl o rich, pero se ve hermoso cuando están instalados.ThreadPoolExecutor..xlsx) con colores condicionales.| Característica | Descripción |
|---|---|
| 🔍 Huella digital multi-fuente | Detecta Joomla! y JCE mediante metaetiquetas, manifiestos, activos estáticos, archivos de idioma y endpoints específicos de JCE |
| 🛡 Detección de WAF | Identifica bloqueos de Cloudflare, Incapsula, Sucuri y ModSecurity |
| 🧪 POC intrusivo seguro | Carga un verificador matemático PHP inofensivo (atribuido y etiquetado explícitamente para limpieza) |
| 📊 Interfaz de terminal basada en tarjetas | Panel + Table de Rich (o fallback ANSI) por objetivo |
| 📁 Informe de Excel | .xlsx auto-generado con encabezados, paneles congelados, anchos de columna y celdas de estado con código de colores |
| ⚙️ Soporte de proxy | Enruta todo el tráfico a través de Burp / ZAP / cualquier proxy HTTP |
| 🧵 Hilos | Hilos de trabajo configurables para listas masivas |
openpyxl para informes de Excelrich para tarjetas de terminal bonitasTodo lo demás es biblioteca estándar de Python (urllib, http.cookiejar, argparse, threading, etc.).
# 1. Clonar el repositorio
git clone https://github.com/YOUR_USERNAME/masta-cve-2026-48907.git
cd masta-cve-2026-48907
# 2. (Opcional pero recomendado) instalar extras
pip install -r requirements.txt
También puede ejecutar el script directamente sin instalar nada (solo salida de terminal, sin Excel):
python masta-cve-2026-48907.py -u https://target.com
python masta-cve-2026-48907.py -u https://target.com/joomla
python masta-cve-2026-48907.py -l targets.txt -t 10
python masta-cve-2026-48907.py -u https://target.com -p http://127.0.0.1:8080
python masta-cve-2026-48907.py -h
-u URL URL de un solo objetivo
-l FILE Archivo que contiene URLs (una por línea)
-o OUTPUT Ruta personalizada para el informe Excel
-t THREADS Hilos concurrentes (predeterminado: 5)
-p PROXY URL del proxy (ej. http://127.0.0.1:8080)
--timeout N Tiempo de espera de solicitud en segundos (predeterminado: 12)
--verify-ssl Habilitar verificación de certificado SSL (predeterminado: deshabilitado)
-v, --verbose Mostrar tarjetas de resultados completas por objetivo durante el escaneo
-d, --debug Mostrar trazas internas de solicitudes HTTP
--no-color Deshabilitar salida de terminal con color
A continuación se muestra la lógica completa de escaneo desde la entrada hasta el informe final.
flowchart TD
A[User provides -u URL or -l FILE] --> B[Normalize & deduplicate targets]
B --> C[Launch ThreadPoolExecutor]
C --> D[For each target]
D --> E1[probe_joomla<br/>GET /, meta, manifest,<br/>static assets, README]
E1 --> F1{Joomla! detected?}
F1 -- No --> R1[Status: NOT_JOOMLA]
F1 -- Yes --> E2[probe_jce<br/>GET jce.xml, endpoints,<br/>JCE-specific markers]
E2 --> F2{JCE detected?}
F2 -- No --> R2[Status: SAFE<br/>JCE not installed]
F2 -- Yes --> F3{Version >= 2.9.99.5?}
F3 -- Yes --> R3[Status: PATCHED]
F3 -- No --> E3[extract_csrf<br/>Parse Joomla! CSRF token]
E3 --> F4{Token found?}
F4 -- No --> R4[Status: PATCHED<br/>CSRF missing → likely hardened]
F4 -- Yes --> E5[Build math-verifier payload<br/>masta-cve-2026-48907-poc ...]
E5 --> E6[Vector 1: Multipart POST<br/>profile_file upload to tmp/]
E6 --> F5{HTTP 200?}
F5 -- Yes --> E7["GET /tmp/masta-{rand}.xml.php"]
E7 --> F6{Body contains<br/>MATHOK:3105:END ?}
F6 -- Yes --> R5[Status: VULNERABLE<br/>Confidence: CONFIRMED]
F6 -- No --> E8[Vector 2: Browser chain<br/>upload + rename via RPC]
E8 --> F7{RCE confirmed?}
F7 -- Yes --> R5
F7 -- No --> E9[Check for WAF block page]
E9 --> F8{WAF detected?}
F8 -- Yes --> R6[Status: BLOCKED_BY_WAF]
F8 -- No --> R7[Status: SAFE]
F5 -- No --> E8
R1 --> S[Append result to Excel + Terminal card]
R2 --> S
R3 --> S
R4 --> S
R5 --> S
R6 --> S
R7 --> S
S --> D
D --> T[Print Summary Dashboard]
T --> U[Save Excel Report to reports/]
U --> V[Print cleanup reminder for<br/>all uploaded POC files]
style R5 fill:#ff0000,stroke:#333,color:#fff
style R3 fill:#32CD32,stroke:#333,color:#000
style R6 fill:#FFD700,stroke:#333,color:#000| Estado | Significado | Confianza |
|---|---|---|
| VULNERABLE | Carga útil PHP ejecutada y prueba matemática verificada. RCE es real. | CONFIRMED |
| VULNERABLE_UPLOAD_ONLY | Archivo subido exitosamente, pero la ejecución PHP fue bloqueada. Explotable pero RCE no confirmado. | HIGH |
| PATCHED | Joomla! / JCE detectado y la versión es >= 2.9.99.5, o CSRF está reforzado. | HIGH / MEDIUM |
| SAFE | JCE no instalado, o los vectores de explotación fallaron (probablemente parcheado/reforzado). | HIGH |
| BLOCKED_BY_WAF | Un cortafuegos de aplicaciones web (WAF) bloqueó la prueba. | LOW |
| NOT_JOOMLA | El objetivo no parece ser un sitio Joomla!. | CERTAIN |
| ERROR | Excepción de red / conectividad / no manejada. | LOW |
Reemplace la imagen a continuación con su captura de pantalla de terminal real.
Marcador de posición de captura de terminal
Reemplace la imagen a continuación con su captura de pantalla real del informe de Excel.
Marcador de posición de informe de Excel
Consejo: Ejecute el escáner contra una instancia local de prueba de Joomla! para generar capturas de pantalla reales. Comprométalos en la carpeta assets/ y se renderizarán automáticamente en GitHub.
Este escáner carga una prueba de concepto PHP inofensiva en el servidor de destino para confirmar la vulnerabilidad. La herramienta siempre imprimirá un recordatorio al final del escaneo listando todos los archivos cargados. Debe eliminarlos manualmente después de las pruebas. Estos archivos se nombran masta-{random}.xml.php o similar y contienen la línea de atribución de texto claro:
masta-cve-2026-48907-poc. This test is done as part of Security Assessment - masta ghimau.
Al usar este software, usted reconoce la responsabilidad total de sus acciones. El código se proporciona "tal cual" sin garantías. Si no comprende las implicaciones de ejecutar un escáner de verificación de RCE intrusivo, no use esta herramienta.
🛡 Use it to protect your own assets. Not to harm others.