DOM-Based XSS

Como Explorar

O DOM-Based XSS ocorre quando o JavaScript do lado do cliente manipula dados da URL ou do DOM e injeta no HTML sem validação. Não depende da resposta do servidor, mas sim do código JS no navegador.

terminal
Exemplo:

<script>
  const params = new URLSearchParams(window.location.search);
  document.body.innerHTML = params.get('xss');
</script>

Acessando: ?xss=<img src=x onerror=alert('XSS')>
  • Teste parâmetros que são manipulados por JS no navegador.
  • Analise o código-fonte para identificar manipulação insegura do DOM.

Por que acontece

O código JS manipula dados do usuário e injeta no DOM sem sanitização, permitindo execução de scripts.

  • Manipulação insegura do DOM via JS.
  • Uso de innerHTML/document.write sem validação.

Como Corrigir

  • Sanitize e escape todas as entradas do usuário.
  • Evite usar innerHTML/document.write.
  • Use frameworks que previnem XSS por padrão.