Um analista de TI descobriu que teve sua conta comprometida a partir de um código javascript malicioso num site que está habituado a acessar. Ao analisar a página acessada, identificou que existia uma vulnerabilidade que permitia que tags HTML fossem incorporadas na seção de comentários da página, de maneira permanente. O ataque sofrido na página foi:
- A)Cross-Site Scripting (XSS) refletido;
Errada, porque o XSS refletido não fica gravado na página e depende de uma resposta imediata a uma requisição específica.
- B)Cross-Site Scripting (XSS) persistente;
Certa, porque o código malicioso foi inserido de forma permanente nos comentários e depois executado no navegador de quem acessa a página.
- C)SQL Injection;
Errada, pois SQL Injection explora falhas em consultas ao banco de dados, não a inserção de JavaScript em comentários de uma página.
- D)LDAP Injection;
Errada, porque LDAP Injection envolve manipulação de consultas LDAP, e não execução de script no navegador.
- E)Decoy.
Errada, já que Decoy é uma isca ou elemento de engodo, não um tipo de ataque web como o descrito no enunciado.
Gabarito: B
O caso descreve um site que aceita a inserção de tags HTML na área de comentários, de forma permanente, e depois entrega esse conteúdo malicioso para outras pessoas que acessam a página. Isso é a cara do Cross-Site Scripting (XSS) persistente, também chamado de armazenado. Em vez de o script aparecer só na resposta imediata, ele fica gravado no site e passa a atingir qualquer usuário que abrir aquele conteúdo. A lógica do ataque é simples e chata, como quase todo golpe bem-feito: o criminoso injeta um script JavaScript em um campo que deveria aceitar texto comum, e o sistema salva aquilo sem tratar corretamente. Quando a página é exibida, o navegador interpreta o código como se fosse legítimo. Resultado: roubo de sessão, desvio de cookies, ações em nome da vítima e outras dores de cabeça clássicas. Por isso o gabarito é a letra B. O enunciado destaca dois pontos decisivos: a presença de código malicioso em JavaScript e a permanência do conteúdo na seção de comentários. Se fosse XSS refletido, o script dependeria de uma resposta imediata a uma requisição específica, sem ficar salvo no site. Aqui não: ele fica hospedado no conteúdo da página, esperando a próxima vítima passar por ali. Em provas, a FGV gosta de testar exatamente essa distinção entre XSS refletido e persistente. Vale guardar a regra de bolso: se o conteúdo malicioso é armazenado no servidor e reaparece para outras pessoas, pense em XSS persistente; se ele volta só na resposta do momento, pense em refletido.