Questão de Segurança da Informação — Ataques a Aplicações Web (XSS, CSRF, SQL Injection etc.) — VUNESP 2023
Segurança da Informação›Ataques a Aplicações Web (XSS, CSRF, SQL Injection etc.)
Código
vu196447
Banca
VUNESP
Órgão
Pref Pindamonhangaba
Ano
2023
Cargo
Ana (Pref Pinda)
Quando usuários navegam em websites na Internet, cookies podem apresentar riscos de segurança se expostos indevidamente. Uma situação que pode causar o envio indevido de informações de cookies para um atacante ocorre quando um usuário malicioso consegue postar conteúdo JavaScript não filtrado em um site, e esse código é posteriormente executado no navegador de um usuário que o acessa. Esse tipo de ataque é conhecido como
ACommand Injection.
BSQL Injection.
CCross-site scripting (XSS).
Dataque de ransomware.
EPath Traversal.
Revelar gabarito e comentário▾
GabaritoC — Cross-site scripting (XSS).
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”.
Cross-site scripting (XSS): injeção de scripts no navegador da vítima
Gabarito: letra C. O ataque descrito — postar conteúdo JavaScript não filtrado em um site, que é executado no navegador de outros usuários — é exatamente o Cross-site scripting (XSS), uma vulnerabilidade de aplicações web que permite a injeção de scripts maliciosos executados no contexto de um site confiável. A definição está alinhada ao conceito clássico de XSS, conforme documentado em referências de segurança web (OWASP, Wikipédia).
O XSS (Cross-site scripting) é um tipo de ataque de injeção que explora a confiança que o usuário tem em um site legítimo. O atacante insere código malicioso (geralmente JavaScript) em uma página web que não valida ou filtra adequadamente as entradas do usuário. Quando outra pessoa acessa essa página, o script é executado no navegador dela, dentro do contexto do site confiável. Isso permite ao atacante roubar cookies de sessão, capturar credenciais, redirecionar o usuário para páginas falsas ou realizar ações em nome da vítima.
O mecanismo central do XSS é a execução de scripts no navegador da vítima, sem que ela perceba. O navegador não consegue distinguir scripts legítimos de scripts maliciosos, então executa tudo que vier da página. No exemplo do enunciado, o usuário malicioso posta JavaScript não filtrado em um fórum ou comentário; quando outro usuário visualiza a página, o script roda e pode, por exemplo, enviar os cookies da vítima para o atacante.
Existem três tipos principais de XSS:
XSS Persistente (ou armazenado): o código malicioso é armazenado no servidor (ex.: em um banco de dados) e executado sempre que a página é acessada. É o caso descrito no enunciado, pois o conteúdo postado fica salvo e é exibido a todos os visitantes.
XSS Refletido (ou não persistente): o código é incluído na URL e refletido na resposta do servidor, sem ser armazenado. O atacante engana a vítima para clicar em um link malicioso.
XSS baseado em DOM: o ataque ocorre diretamente no Document Object Model (DOM) do navegador, sem modificar a resposta HTTP.
A distinção entre XSS e outros ataques é crucial. Enquanto o XSS explora a confiança do usuário no site, o CSRF (Cross-Site Request Forgery) explora a confiança que o site tem no navegador do usuário, forçando-o a executar ações indesejadas em uma sessão autenticada. Já o SQL Injection ataca o banco de dados, injetando comandos SQL. O Command Injection injeta comandos do sistema operacional. O Path Traversal explora caminhos de arquivos para acessar diretórios restritos. O ransomware é um malware que sequestra dados.
A pegadinha da banca está em confundir XSS com CSRF, pois ambos envolvem cookies e navegadores. No XSS, o atacante executa scripts no navegador da vítima; no CSRF, o atacante forja requisições aproveitando a sessão autenticada, sem executar scripts. O enunciado descreve claramente a execução de JavaScript postado, o que caracteriza XSS.
Guarde a fronteira: XSS = execução de script no navegador; CSRF = forjar requisições usando a sessão do usuário. É exatamente nessa distinção que as alternativas se dividem.
XSS (Cross-site scripting): Persistente (armazenado) (Código salvo no servidor, Executa para todos os visitantes); Refletido (não persistente) (Código na URL, Vítima clica no link malicioso); Baseado em DOM (Ataca o DOM do navegador, Sem modificar resposta HTTP)
Alternativa A — ❌ Incorreta
Command Injection é um ataque que injeta comandos do sistema operacional através de uma aplicação vulnerável, explorando falhas na execução de comandos do servidor. Não envolve a execução de scripts no navegador do usuário, mas sim a execução de comandos no servidor. O enunciado fala de JavaScript executado no navegador, o que não se aplica.
Alternativa B — ❌ Incorreta
SQL Injection é um ataque que manipula consultas SQL enviadas ao banco de dados, inserindo instruções maliciosas através de campos de entrada. O objetivo é acessar, modificar ou deletar dados do banco. Não há execução de scripts no navegador da vítima; o ataque ocorre no servidor, na camada de banco de dados. O enunciado descreve a execução de JavaScript no navegador, o que é característica de XSS.
Alternativa C — ✅ Correta ⟵ GABARITO
Cross-site scripting (XSS) é exatamente o ataque descrito: um usuário malicioso posta conteúdo JavaScript não filtrado em um site, e esse código é executado no navegador de outros usuários que acessam a página. O XSS explora a falta de validação/filtragem das entradas do usuário, permitindo a injeção de scripts que rodam no contexto do site confiável. O objetivo pode ser roubar cookies, capturar credenciais ou realizar ações em nome da vítima.
Alternativa D — ❌ Incorreta
Ransomware é um tipo de malware que sequestra dados ou sistemas, criptografando-os e exigindo resgate (ransom) para liberá-los. Não é um ataque de injeção de scripts em páginas web; é um software malicioso que infecta a máquina da vítima. O enunciado descreve um ataque a aplicações web, não a instalação de malware.
Alternativa E — ❌ Incorreta
Path Traversal (ou Directory Traversal) é um ataque que explora vulnerabilidades na manipulação de caminhos de arquivos, permitindo ao atacante acessar diretórios e arquivos fora do diretório raiz da aplicação. Não envolve a execução de scripts no navegador; é uma técnica de acesso a arquivos do servidor. O enunciado descreve a execução de JavaScript no navegador, o que não se relaciona com Path Traversal.
NÃO CAIA NESSA!
A banca explora a confusão entre XSS e CSRF, pois ambos envolvem cookies e navegadores. No XSS, o atacante executa scripts no navegador da vítima; no CSRF, o atacante forja requisições usando a sessão autenticada, sem executar scripts. O enunciado descreve claramente a execução de JavaScript postado, o que caracteriza XSS. Fique atento: se a questão falar em "executar script malicioso no navegador", é XSS; se falar em "forçar o usuário a executar ações indesejadas", é CSRF.
PEGA ESSA DICA!
Para diferenciar os ataques de injeção, foque no alvo: XSS ataca o navegador do usuário (client-side), SQL Injection ataca o banco de dados, Command Injection ataca o sistema operacional, e Path Traversal ataca o sistema de arquivos. Memorize essa tabela: