
cve-2026-48907 scanner
Scanner autocontido em um único arquivo para Joomla! JCE Editor < 2.9.99.5 — Execução Remota de Código não autenticada (CVE-2026-48907)
Autor: Alma
[!CAUTION]
🚨 AVISO LEGAL — LEIA ANTES DE USAR
ISTO É UMA FERRAMENTA INTRUSIVA DE TESTE DE SEGURANÇA.
ESTA FERRAMENTA É APENAS PARA AVALIAÇÕES DE SEGURANÇA AUTORIZADAS.
Examinar sistemas que você NÃO possui ou sem PERMISSÃO POR ESCRITO é ILEGAL na maioria das jurisdições.
O autor (Hussein Mohamed masta ghimau) NÃO ACEITA NENHUMA responsabilidade por qualquer uso indevido, dano, ação legal ou perda de dados decorrente do uso desta ferramenta.
Ao executar este scanner, você concorda em:
Escaneie apenas ativos que VOCÊ POSSUI ou para os quais tenha CONSENTIMENTO EXPLÍCITO POR ESCRITO.
Entenda que ele faz upload de um arquivo PHP de POC inofensivo para o servidor alvo como parte da verificação intrusiva de precisão.
Exclua manualmente todos os arquivos POC enviados imediatamente após o uso.
USE POR SUA CONTA E RISCO.
[!IMPORTANT] Por que "intrusivo" importa para a precisão: Para atingir o mais alto nível de confiança e eliminar falsos positivos, esta ferramenta realiza um teste de payload de verificação matemática ao vivo. Ela envia uma linha segura de prova de conceito PHP e confirma a Execução Remota de Código verificando o resultado matemático exato computado retornado pelo servidor. Scanners não intrusivos que apenas leem strings de versão podem perder patches back-portados ou correções personalizadas. Esta ferramenta verifica se a vulnerabilidade realmente existe. Portanto, é intrusiva por design — use com sabedoria e com autorização total.
masta-cve-2026-48907.py é um scanner Python completamente original, em um único arquivo projetado para detectar CVE-2026-48907 em instâncias Joomla! executando o componente JCE Editor com versões anteriores a 2.9.99.5.
requests/httpx..py que você pode jogar em qualquer lugar.openpyxl ou rich, mas fica bonito quando estão instalados.ThreadPoolExecutor..xlsx) estilizados com cores condicionais.openpyxl para relatórios Excelrich para cartões de terminal bonitosTodo o resto é biblioteca padrão Python (urllib, http.cookiejar, argparse, threading, etc.).
# 1. Clone o repositório
git clone https://github.com/SEU_USUARIO/masta-cve-2026-48907.git
cd masta-cve-2026-48907
# 2. (Opcional, mas recomendado) instale os extras
pip install -r requirements.txt
Você também pode executar o script diretamente sem instalar nada (apenas saída no terminal, sem Excel):
python masta-cve-2026-48907.py -u https://alvo.com
python masta-cve-2026-48907.py -u https://alvo.com/joomla
python masta-cve-2026-48907.py -l alvos.txt -t 10
python masta-cve-2026-48907.py -u https://alvo.com -p http://127.0.0.1:8080
python masta-cve-2026-48907.py -h
-u URL URL de alvo único
-l ARQUIVO Arquivo contendo URLs (uma por linha)
-o SAÍDA Caminho personalizado para saída Excel
-t THREADS Threads concorrentes (padrão: 5)
-p PROXY URL do proxy (ex.: http://127.0.0.1:8080)
--timeout N Timeout de requisição em segundos (padrão: 12)
--verify-ssl Ativar verificação de certificado SSL (padrão: desativado)
-v, --verbose Mostrar cartões de resultado completos por alvo durante a varredura
-d, --debug Mostrar rastros internos de requisições HTTP
--no-color Desativar saída colorida no terminal
Abaixo está a lógica completa de varredura desde a entrada até o relatório final.
flowchart TD
A[Usuário fornece -u URL ou -l ARQUIVO] --> B[Normalizar & deduplicar alvos]
B --> C[Iniciar ThreadPoolExecutor]
C --> D[Para cada alvo]
D --> E1[probe_joomla<br/>GET /, meta, manifest,<br/>ativos estáticos, README]
E1 --> F1{Joomla! detectado?}
F1 -- Não --> R1[Status: NOT_JOOMLA]
F1 -- Sim --> E2[probe_jce<br/>GET jce.xml, endpoints,<br/>marcadores específicos do JCE]
E2 --> F2{JCE detectado?}
F2 -- Não --> R2[Status: SAFE<br/>JCE não instalado]
F2 -- Sim --> F3{Versão >= 2.9.99.5?}
F3 -- Sim --> R3[Status: PATCHED]
F3 -- Não --> E3[extract_csrf<br/>Extrair token CSRF do Joomla!]
E3 --> F4{Token encontrado?}
F4 -- Não --> R4[Status: PATCHED<br/>CSRF ausente → provavelmente endurecido]
F4 -- Sim --> E5[Construir payload verificador matemático<br/>masta-cve-2026-48907-poc ...]
E5 --> E6[Vetor 1: POST Multipart<br/>upload profile_file para tmp/]
E6 --> F5{HTTP 200?}
F5 -- Sim --> E7["GET /tmp/masta-{rand}.xml.php"]
E7 --> F6{Corpo contém<br/>MATHOK:3105:END ?}
F6 -- Sim --> R5[Status: VULNERABLE<br/>Confiança: CONFIRMED]
F6 -- Não --> E8[Vetor 2: Cadeia do navegador<br/>upload + renomear via RPC]
E8 --> F7{RCE confirmado?}
F7 -- Sim --> R5
F7 -- Não --> E9[Verificar página de bloqueio do WAF]
E9 --> F8{WAF detectado?}
F8 -- Sim --> R6[Status: BLOCKED_BY_WAF]
F8 -- Não --> R7[Status: SAFE]
F5 -- Não --> E8
R1 --> S[Anexar resultado ao Excel + cartão de terminal]
R2 --> S
R3 --> S
R4 --> S
R5 --> S
R6 --> S
R7 --> S
S --> D
D --> T[Exibir Painel de Resumo]
T --> U[Salvar Relatório Excel em reports/]
U --> V[Exibir lembrete de limpeza para<br/>todos os arquivos POC enviados]
style R5 fill:#ff0000,stroke:#333,color:#fff
style R3 fill:#32CD32,stroke:#333,color:#000
style R6 fill:#FFD700,stroke:#333,color:#000
Substitua a imagem abaixo pela sua captura de tela real do terminal.
Placeholder da Captura de Tela do Terminal
Substitua a imagem abaixo pela sua captura de tela real do relatório Excel.
Placeholder do Relatório Excel
Dica: Execute o scanner contra uma instância de teste local do Joomla! para gerar capturas de tela reais. Coloque-as na pasta assets/ e elas serão renderizadas automaticamente no GitHub.
Este scanner envia um arquivo PHP de prova de conceito inofensivo para o servidor alvo para confirmar a vulnerabilidade. A ferramenta sempre exibirá um lembrete no final da varredura listando todos os arquivos enviados. Você deve excluí-los manualmente após o teste. Esses arquivos são nomeados masta-{rand}.xml.php ou similar e contêm a linha de atribuição de texto claro:
masta-cve-2026-48907-poc. This test is done as part of Security Assessment - masta ghimau.
Ao usar este software, você reconhece total responsabilidade por suas ações. O código é fornecido "como está", sem garantias. Se você não entende as implicações de executar um scanner intrusivo de verificação de RCE, não use esta ferramenta.
🛡 Use-o para proteger seus próprios ativos. Não para prejudicar outros.
| Funcionalidade | Descrição |
|---|
| 🔍 Impressão digital multifonte | Detecta Joomla! e JCE via meta tags, manifestos, ativos estáticos, arquivos de idioma e endpoints específicos do JCE |
| 🛡 Detecção de WAF | Identifica bloqueios do Cloudflare, Incapsula, Sucuri e ModSecurity |
| 🧪 POC intrusiva segura | Envia um verificador matemático PHP inofensivo (atribuído + explicitamente rotulado para limpeza) |
| 📊 Interface de terminal baseada em cartões | Painéis Panel + Table do Rich (ou fallback ANSI) por alvo |
| 📁 Relatório Excel | .xlsx gerado automaticamente com cabeçalhos, painéis congelados, larguras de colunas e células de status com cores |
| ⚙️ Suporte a proxy | Roteia todo o tráfego através do Burp / ZAP / qualquer proxy HTTP |
| 🧵 Threads | Workers configuráveis para listas em massa |
| Status | Significado | Confiança |
|---|
| VULNERABLE | Payload PHP executado e prova matemática verificada. RCE é real. | CONFIRMED |
| VULNERABLE_UPLOAD_ONLY | Arquivo enviado com sucesso, mas execução PHP foi bloqueada. Explorável, mas RCE não confirmado. | HIGH |
| PATCHED | Joomla! / JCE detectado e versão é >= 2.9.99.5, ou CSRF está endurecido. | HIGH / MEDIUM |
| SAFE | JCE não instalado, ou vetores de exploração falharam (provavelmente corrigido/endurecido). | HIGH |
| BLOCKED_BY_WAF | Um Firewall de Aplicação Web bloqueou o teste. | LOW |
| NOT_JOOMLA | O alvo não parece ser um site Joomla!. | CERTAIN |
| ERROR | Exceção de rede / conectividade / não tratada. | LOW |