
Um ambiente de laboratório prático e containerizado para simular e explorar uma vulnerabilidade de Cross-Site Scripting (XSS) baseada em DOM no plugin Elementor Website Builder para WordPress, identificada como CVE-2021-24891.
Este laboratório demonstra uma vulnerabilidade de Cross-Site Scripting (XSS) baseada em DOM no plugin Elementor para WordPress (versões anteriores à 3.4.8). A vulnerabilidade ocorre porque o código do lado do cliente do editor Elementor lê diretamente os dados do hash da URL (#...) e os anexa ao Document Object Model (DOM) da página sem a devida sanitização.
Um atacante pode criar um link malicioso contendo um payload JavaScript no fragmento de hash. Quando um administrador conectado (como um editor do site) clica nesse link, o script malicioso é executado no contexto da sessão do navegador dele, permitindo potencialmente que o atacante realize ações em seu nome, roube cookies de sessão ou desfigure o site.
#, processada no lado do cliente e não enviada ao servidor. Este é o ponto de entrada para o payload malicioso.Este repositório contém uma instância vulnerável do WordPress com o plugin Elementor afetado, pronta para você explorar. O laboratório pode ser executado instantaneamente na nuvem ou na sua máquina local.
Esta é a maneira mais fácil de começar. Ele fornece um ambiente pré-configurado e baseado em nuvem no seu navegador.
Iniciar o Codespace: Clique no selo "Open in GitHub Codespaces" no topo deste README.
Aguarde a Configuração: O GitHub preparará seu ambiente. Quando concluído, um terminal aparecerá.
Inicie os Serviços Vulneráveis: No terminal do VS Code, execute o seguinte comando único:
docker compose up
Isso iniciará o site WordPress vulnerável e seu banco de dados. Você verá uma aba "Ports" aparecer. Clique no link da Porta 8080 para abrir o WordPress em uma nova aba do navegador.
Execute todo o laboratório em sua própria máquina com Docker.
Pré-requisitos:
Instruções:
Clone o Repositório:
git clone https://github.com/hackmelocal/CVE-2021-24891-Simulation.git
cd CVE-2021-24891-Simulation
Inicie os Serviços Vulneráveis: No seu terminal, execute o comando:
docker compose up
Acesse o WordPress: Abra seu navegador web e navegue até http://localhost:8080.
O código JavaScript dentro do editor Elementor lê o valor de window.location.hash e o escreve de forma insegura no DOM da página. Como a entrada (<script>alert(...)</script>) não é sanitizada, o navegador a interpreta como uma tag de script válida e a executa. Este é um exemplo clássico de XSS baseado em DOM.
Este laboratório é fornecido apenas para fins educacionais. O criador não é responsável por qualquer uso indevido das informações ou ferramentas fornecidas. Sempre garanta que você tenha autorização adequada antes de realizar qualquer teste de segurança.
Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.