Command Palette

Search for a command to run...

Glossário XSS (Cross-Site Scripting)

O Que é XSS (Cross-Site Scripting)?

Cross-Site Scripting, ou XSS, é uma falha de segurança em sites que permite que atacantes adicionem scripts prejudiciais a páginas da web. Na maioria das vezes, esses scripts são escritos em JavaScript.

Se alguém visita uma página afetada por XSS, seu navegador executa o script do atacante. Isso pode resultar em cookies roubados, sessões sequestradas ou ações realizadas sem a permissão do usuário.

O XSS, assim como a Injeção de SQL, é regularmente listado no OWASP Top 10 como uma das vulnerabilidades mais comuns em aplicações web.

plexicus-xss-attack-ilustration

Como o XSS Funciona?

O XSS frequentemente tem como alvo aplicações web que não verificam e limpam corretamente a entrada do usuário.

Por exemplo, se uma caixa de comentários permite HTML bruto ou JavaScript sem qualquer filtragem, um atacante poderia adicionar um código como este:

<script>alert('Hacked!');</script>

Quando as vítimas visualizam a página, o código malicioso é executado dentro de seu navegador.

Por Que o XSS é Importante na Cibersegurança

O XSS pode levar a uma violação maior:

  • Tomada de conta (roubo de cookies de sessão para se passar por usuários)
  • Roubo de dados (captura de entradas de formulário como senhas ou cartões de crédito)
  • Ataques de phishing (injeção de formulários de login falsos)
  • Entrega de malware (redirecionamento de usuários para sites maliciosos)

Tipos de XSS

  1. XSS Baseado em DOM
  2. O ataque ocorre inteiramente no navegador manipulando o Document Object Model (DOM) sem envolver o servidor.
  3. XSS Armazenado
  4. Script malicioso é armazenado permanentemente no servidor, como no banco de dados, página de perfil.
  5. XSS Refletido
  6. Script é refletido de um servidor web (por exemplo, em URL ou mensagem de erro), o script será executado quando a vítima clicar no link criado pelos atacantes.

Como Prevenir XSS

  • Sanitização de entrada & codificação de saída: sempre limpar os dados de entrada do usuário antes de processá-los, transformando a entrada do usuário em um formato seguro
  • Usar Política de Segurança de Conteúdo (CSP): restringe quais scripts podem ser executados no navegador.
  • Evitar eval() e JavaScript inline: para reduzir os riscos de injeção.
  • Testes de segurança (DAST/IAST): realizar testes de segurança para detectar vulnerabilidades cedo

Exemplo em Caso Real - Verme Samy (MySpace, 2005)

O que aconteceu: Samy Kamkar publicou um perfil no MySpace que continha uma carga útil de XSS armazenado. Quando outros usuários visualizavam o perfil, a carga útil era executada em seus navegadores, (a) adicionava Samy como amigo, (b) acrescentava a frase “Samy é meu herói” aos seus perfis e (c) se replicava nas páginas de perfil desses usuários.

Impacto: O worm se auto-propagou para ~1 milhão de usuários em aproximadamente 20 horas, forçando o MySpace a ficar offline temporariamente.

Por que funcionou: O MySpace permitia HTML/atributos não escapados nos campos de perfil, possibilitando a execução de scripts armazenados nos navegadores dos visitantes.

Lições / correção: Codificação de saída adequada, sanitização de entrada, remoção de HTML nos campos de perfil e aplicação rápida de patches. Samy posteriormente enfrentou consequências legais, e o MySpace implementou filtros.

Termos Relacionados

Next Steps

Pronto para proteger suas aplicações? Escolha seu caminho a seguir.

Junte-se a mais de 500 empresas que já estão protegendo suas aplicações com o Plexicus

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready