
O plugin Backup Migration para WordPress é vulnerável a Execução Remota de Código em todas as versões até, e incluindo, 1.3.7 através do arquivo /includes/backup-heart.php.
Prova de conceito do exploit para CVE-2023-6553 — uma vulnerabilidade crítica de RCE não autenticada no plugin "Backup Migration" do WordPress (versões ≤ 1.3.7).
| Propriedade | Detalhe |
|---|---|
| CVE ID | CVE-2023-6553 |
| Pontuação CVSS | 9.8 / 10 — Crítico |
| Vetor CVSS | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-94 — Controle inadequado de geração de código |
| Plugin Afetado | Backup Migration (slug: backup-backup) |
| Versões Afetadas | ≤ 1.3.7 |
| Autenticação | Nenhum necessário (Não autenticado) |
| Descoberto Por | Wordfence |
O plugin Backup Migration para WordPress é vulnerável a Execução Remota de Comando em todas as versões até, e incluindo, 1.3.7 através do arquivo /includes/backup-heart.php.
A vulnerabilidade existe porque um atacante pode controlar os valores passados para uma instrução PHP include através do cabeçalho HTTP Content-Dir. Ao aproveitar uma cadeia de filtros PHP, um atacante pode injetar código PHP arbitrário sem autenticação — alcançando Execução Remota de Comando completa no servidor.
┌──────────┐ Cabeçalho Content-Dir ┌──────────────────────┐ include() ┌──────────┐
│ Atacante │ ──── Cadeia de Filtros PHP ─▶│ backup-heart.php │ ──────────────▶ │ RCE │
│ │ (sem necessidade de auth) │ (arquivo vulnerável)│ │ no Host │
└──────────┘ └──────────────────────┘ └──────────┘
readme.txtContent-Dir para o endpoint vulnerável.
├── exploit.py # 🎯 Exploit limpo e profissional (modo verbose suportado)
├── fancy_exploit.py # ✨ Versão extravagante — mesmo exploit, vibes melhores
├── php_filter_chain.py # 🔗 Módulo gerador de cadeia de filtros PHP
└── README.md # 📖 Você está aqui
exploit.py — Exploit ProfissionalO script de exploit principal e limpo, projetado para uso profissional em avaliações de segurança e estudos de caso. Recursos incluem:
-v) para saída operacional detalhada-C)fancy_exploit.py — A Versão Extravagante ✨Uma versão mais expressiva do mesmo exploit com personalidade extra. Funcionalmente idêntico ao exploit.py, mas com uma apresentação muito mais colorida:
Nota: Ambos os scripts compartilham lógica de ataque idêntica —
fancy_exploit.pysimplesmente envolve a experiência em uma camada de saída visualmente mais expressiva.
pip# Clone o repositório
git clone https://github.com/<seu-usuario>/CVE-2023-6553.git
cd CVE-2023-6553
# Instale as dependências
pip install -r requirements.txt
Nota:
php_filter_chain.pyé um módulo local incluído no repositório — nenhuma instalação adicional necessária.
exploit.py
# Verificar se um alvo é vulnerável (apenas reconhecimento)
python3 exploit.py -u http://target.com -C
# Explorar e executar um comando
python3 exploit.py -u http://target.com -c id
# Verificar vulnerabilidade primeiro, depois explorar
python3 exploit.py -u http://target.com -C -c whoami
# Modo verbose para saída detalhada
python3 exploit.py -u http://target.com -c id -v
fancy_exploit.py
# Verificar se um alvo é vulnerável
python3 fancy_exploit.py -u http://target.com -C
# Explorar e executar um comando
python3 fancy_exploit.py -u http://target.com -c id
# Verificar primeiro, depois explorar se vulnerável
python3 fancy_exploit.py -u http://target.com -C -c whoami
| Flag | Descrição |
|---|---|
-u, --url | (Obrigatório) URL do WordPress alvo |
-c, --command | Comando do SO a executar pós-exploração |
-C, --check | Verificar status da vulnerabilidade sem explorar |
-v, --verbose | Ativar saída verbose (apenas exploit.py) |
| Fase | Nome | Descrição |
|---|---|---|
| 1 | 🔍 Reconhecimento | Busca readme.txt para detectar a versão do plugin instalado |
| 2 | 🧪 Geração de Payload | Constrói uma cadeia de filtros PHP que decodifica para um dropper de webshell |
| 3 | 💣 Entrega do Exploit | Envia o payload para backup-heart.php via cabeçalho Content-Dir |
| 4 | 🚀 Execução de Comando | Aciona o webshell implantado com o comando do SO especificado |
Content-Dir suspeitos