Pular para o conteúdo principal

Questão de Segurança da Informação — Ataques a Aplicações Web (XSS, CSRF, SQL Injection etc.) — CESPE / CEBRASPE 2024

Segurança da InformaçãoAtaques a Aplicações Web (XSS, CSRF, SQL Injection etc.)
Código
ce404026
Banca
CESPE / CEBRASPE
Órgão
CAU BR
Ano
2024
Cargo
Ana ( )

Julgue o próximo item, a respeito de XSS (cross-site scripting).

 

https://www.apenasexemplo.com.br/?name=<scrip t>alert(1)</script> é um exemplo de XSS Reflected e será executado no navegador do usuário.

  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

XSS Reflected: injeção de script via URL

✅ CERTO. A URL apresentada é um exemplo clássico de XSS Reflected (não persistente), pois o código malicioso é embutido em um parâmetro da URL (name) e, se a aplicação não validar/sanitizar essa entrada, o navegador do usuário executará o script alert(1) ao carregar a página. O XSS Reflected é caracterizado exatamente por isso: o payload viaja na requisição (geralmente na URL) e é refletido na resposta, sendo executado no navegador da vítima.

O XSS (Cross-Site Scripting) é uma vulnerabilidade de segurança em aplicações web que permite a um atacante injetar scripts maliciosos (geralmente JavaScript) em páginas visualizadas por outros usuários. O nome "cross-site" vem do fato de o script ser executado no contexto de um site confiável, mas originado de uma fonte não confiável. O objetivo é fazer o navegador da vítima executar código arbitrário, o que pode levar a roubo de cookies, sequestro de sessão, redirecionamento para sites maliciosos, alteração de conteúdo da página, entre outros danos.

Existem três tipos principais de XSS, que se diferenciam pela forma como o payload é entregue e persistido:

Tipo

Característica

Exemplo de vetor

Reflected (não persistente)

O código malicioso é incluído na URL (ou em parâmetros de formulário) e refletido na resposta HTTP sem sanitização. É executado uma única vez, no navegador da vítima que clicar no link malicioso.

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

Stored (persistente)

O código malicioso é armazenado no servidor (em banco de dados, fórum, comentários) e executado por todos os usuários que acessarem a página.

Comentário em um fórum contendo <script>...</script>

DOM-based

A vulnerabilidade está no código JavaScript do lado do cliente, que manipula o DOM sem sanitizar dados vindos de fontes como location.hash ou document.URL. O payload não chega a ser enviado ao servidor.

https://site.com/#<script>alert(1)</script>

No caso da questão, a URL https://www.apenasexemplo.com.br/?name=<script>alert(1)</script> é um exemplo típico de XSS Reflected: o parâmetro name recebe o payload diretamente na URL. Se a aplicação refletir esse valor na página sem codificação adequada, o navegador interpretará <script> como código e executará alert(1). O ataque é "refletido" porque o servidor devolve (reflete) a entrada do usuário na resposta, sem armazená-la.

A execução ocorre no navegador do usuário, não no servidor. Isso é uma característica fundamental do XSS: o script malicioso roda no contexto de segurança do site confiável, com acesso a cookies, tokens de sessão e outras informações do usuário. O navegador não tem como distinguir um script legítimo de um injetado, pois ambos vêm da mesma origem.

A pegadinha que a banca explora aqui é a confusão entre XSS Reflected e XSS Stored. Muitos candidatos podem achar que, por o código estar na URL, ele seria "persistente" ou que não seria executado. Na verdade, o XSS Reflected é exatamente esse: o payload viaja na URL e é executado no navegador da vítima quando ela clica no link. O XSS Stored, por outro lado, persiste no servidor e afeta todos os visitantes da página.

NÃO CAIA NESSA!

A banca pode tentar confundir o candidato fazendo-o acreditar que, por o código estar na URL, ele não seria executado ou seria um XSS Stored. Lembre-se: XSS Reflected = payload na URL, executado no navegador da vítima; XSS Stored = payload armazenado no servidor, executado para todos os usuários. A distinção está na persistência, não na forma de entrega.

1Reflected (não persistente)
Payload na URL
Executado no navegador da vítima
2Stored (persistente)
Payload no servidor
Executado para todos os usuários
3DOM-based
Payload no lado do cliente
Não chega ao servidor
XSS (Cross-Site Scripting)
LEVELsoulevel.com.br
XSS (Cross-Site Scripting): Reflected (não persistente) (Payload na URL, Executado no navegador da vítima); Stored (persistente) (Payload no servidor, Executado para todos os usuários); DOM-based (Payload no lado do cliente, Não chega ao servidor)

Item — ✅ Correto ⟵ GABARITO

A afirmação está correta. A URL apresentada é um exemplo de XSS Reflected, pois o código malicioso está embutido no parâmetro name da URL. Quando o usuário clica nesse link, o navegador envia a requisição ao servidor; se a aplicação refletir o valor do parâmetro na página sem sanitização, o navegador executará o script alert(1). Isso caracteriza o XSS Reflected, que é executado no navegador do usuário, conforme descrito no enunciado.

Gabarito: ✅ CERTO

Link permanente: /questoes/ce404026