
Prova de conceito de exploit para CVE-2022-1329, uma vulnerabilidade de execução remota de código no WordPress Elementor 3.6.0-3.6.2. Inclui ambiente vulnerável baseado em Docker e injeção de payload PHP personalizável.
Este poc é baseado no de AkuCyberSec.
Use o docker-compose para iniciar o ambiente vulnerável:
docker-compose up -d
Então você pode acessar a página de Administração do WordPress pela URL http://localhost:8000.
Registre o usuário administrador e adicione um usuário não administrador na aba Usuários. Por exemplo, existem dois usuários:
| Nome de usuário | Senha | Função |
|---|
| wc | 123456 | Admin |
| a2 | aaaaaa | Editor |
Faça login com a conta de administrador e instale o Elementor 3.6.1 com o zip fornecido.
Se você encontrar o problema de tamanho de upload, adicione php.ini em /var/www/html/ conforme a seguir e reinicie o servidor docker:
upload_max_filesize = 64M
max_execution_time = 0
post_max_size = 150M
file_uploads = on
Edite o script poc com as informações do seu usuário não administrador e execute o script poc para explorar:
python3 poc.py
NOTA: o script pode falhar com problema de upload, mas está tudo bem, tente atualizar a página de administração no navegador para ver se funciona.
O poc agora executa phpinfo(); como seu payload, é claro que você pode editar isso, mas precisa remover manualmente o plugin elementor-pro no container docker /var/www/html/wp-content/plugins/elementor-pro:
# Descompacte o arquivo zip
unzip elementor-pro.zip
# Edite o arquivo principal para colocar seu payload, está no início do arquivo
nano elementor-pro/elementor-pro.php
# E compacte
rm elementor-pro.zip; zip -ry elementor-pro.zip elementor-pro
# explore novamente
python3 poc.py
