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.