Ataques Cross-Site Scripting (XSS) são realizados com um tipo de injeção, onde scripts maliciosos são injetados em outros sites benignos e confiáveis. Os ataques XSS ocorrem quando um invasor usa um aplicativo da Web para enviar códigos maliciosos, geralmente sob a forma de um script do lado do navegador, para um usuário final diferente. As falhas que permitem que esses ataques sejam bem sucedidos são bastante difundidas e ocorrem em qualquer lugar onde uma aplicação web usa a entrada de  dados de um usuário sem validá-los ou codificá-los na saída.

Um invasor pode usar XSS para enviar um script malicioso para um usuário desavisado. O navegador do usuário final não tem como saber que o script não deve ser confiável e executará o script. Como pensa que o script veio de uma fonte confiável (site de um banco, por exemplo), o script malicioso pode acessar todos os cookies, tokens de sessão ou outras informações confidenciais mantidas pelo navegador e usadas com esse site. Esses scripts podem até reescrever o conteúdo da página HTML, mostrando a página que o usuário desatento quer ver, mas com os scripts maliciosos. 

Quando os ataques do Cross-Site Scripting (XSS) ocorrem?

  • Os dados entram em um aplicativo da Web através de uma fonte não confiável, mais freqüentemente de uma solicitação na web.
  • Os dados estão incluídos no conteúdo dinâmico que é enviado para um usuário da web sem ser validado, testado para conteúdo(s) malicioso(s).
  • O conteúdo malicioso enviado ao navegador geralmente assume a forma de um segmento de JavaScript, mas também pode incluir HTML, Flash ou qualquer outro tipo de código que o navegador possa executar.

A variedade de ataques com base em XSS é quase ilimitada, mas geralmente incluem a transmissão de dados privados, como cookies ou outras informações de sessão, ao atacante, redirecionando a vítima para conteúdo da Web controlado pelo atacante ou realizando outras operações maliciosas na máquina do usuário sob o disfarce do site vulnerável.

Ataques XSS armazenados e refletidos

Os ataques XSS geralmente podem ser categorizados em duas categorias: armazenados e refletidos. Há um terceiro, muito menos conhecido tipo de ataque XSS chamado DOM Based XSS que será discutido separadamente.

Ataques XSS armazenados

Os ataques armazenados são aqueles em que o script injetado é armazenado permanentemente nos servidores de destino, como em um banco de dados, em um fórum de mensagens, log de visitantes, campo de comentários, etc. A vítima recupera o script malicioso do servidor quando faz requisiçõea nesse armazenamento. O XSS armazenado também é chamado de XSS persistente ou tipo I.

Ataques XSS refletidos

Os ataques refletidos são aqueles em que o script injetado é refletido no servidor da Web, como em uma mensagem de erro, resultado de pesquisa ou qualquer outra resposta que inclua parte ou a totalidade da entrada enviada ao servidor como parte da solicitação. Os ataques refletidos são entregues às vítimas através de outra rota, como em uma mensagem de e-mail ou em algum outro site. Quando um usuário é enganado ao clicar em um link malicioso, enviando um formulário especialmente criado, ou mesmo apenas navegando para um site malicioso, o código injetado viaja para o site vulnerável, o que reflete o ataque de volta ao navegador do usuário. O navegador então executa o código porque ele veio de um servidor "confiável". O XSS refletido também é chamado de XSS não persistente ou tipo II.

Outros tipos de vulnerabilidades XSS

Além do XSS armazenado e refletido, outro tipo de XSS, DOM Based XSS foi identificado por Amit Klein em 2005.

Organizando-os em uma matriz de XSS armazenado versus refletido e Server vs. Client XSS, DOM Based XSS seria um subconjunto do Client XSS.

Consequências de um Ataque XSS

A conseqüência de um ataque XSS é a mesma independentemente de estar armazenada ou refletida (ou baseada em DOM). A diferença é na forma como a carga útil chega ao servidor. Não se deixe enganar ao pensar que um site "somente leitura" ou "brochureware" não é vulnerável a ataques XSS refletidos sérios. XSS pode causar uma variedade de problemas para o usuário final que variam em gravidade de um aborrecimento , até mesmo o comprometimento total de sua conta no site.

Os ataques XSS mais graves envolvem a divulgação do cookie de sessão do usuário, permitindo que um invasor seqüestre a sessão do usuário e tome conta da conta. Outros ataques prejudiciais incluem a divulgação de arquivos de usuários finais, a instalação de programas de cavalo de Tróia, redirecionar o usuário para alguma outra página ou site ou modificar a apresentação de conteúdo.

Uma vulnerabilidade XSS que permite que um invasor modifique um comunicado de imprensa ou uma notícia pode afetar o preço das ações de uma empresa ou diminuir a confiança do consumidor. Uma vulnerabilidade XSS em um site farmacêutico pode permitir que um invasor modifique a informação de dosagem resultando em uma overdose, entre muitos outros exemplos.

Será que você está vulnerável?

As falhas XSS podem ser difíceis de identificar e remover de uma aplicação web. A melhor maneira de encontrar falhas é realizar uma revisão de segurança do código e procurar por todos os lugares em que a entrada de uma solicitação HTTP possa entrar na saída HTML. Observe que uma variedade de tags HTML diferentes podem ser usadas para transmitir um JavaScript malicioso. Nessus, Nikto e algumas outras ferramentas disponíveis podem ajudar a escanear um site para essas falhas, mas só podem arranhar a superfície. Se uma parte de um site é vulnerável, existe uma grande probabilidade de haver outros problemas também.

Como se proteger

É crucial que você desative o suporte HTTP TRACE em todos os servidores web. Um invasor pode roubar dados de cookies via Javascript mesmo quando document.cookie estiver desativado ou não suportado no cliente.

Este ataque é montado quando um usuário publica um script malicioso em um fórum, então, quando outro usuário clica no link, uma chamada de rastreamento HTTP assíncrona é acionada, que coleta as informações do cookie do usuário do servidor e depois envia para outro servidor malicioso que coleta a informação do cookie para que o invasor possa montar um ataque de seqüestro de sessão. Isso é fácil e atenuado removendo suporte para HTTP TRACE em todos os servidores web. 

Este artigo mostrou um pouco desse tipo de ataque que pode ocorrer. O assunto não está esgotado, então espere novos posts.

In 31/05/2017, by Morpheus

Artigo acessado 1887 vezes!

Artigos relacionados


Como funciona o SSL? (Aquele 's' do https)

Como funciona o SSL? (Aquele 's' do https)

O protocolo Https HTTPS (Hyper Text Transfer Protocol Secure) é a versão segura do HTTP (Hyper Text Transfer Protocol). Meios seguros...

Ataques de força bruta

Ataques de força bruta

O ataque de força bruta ainda é um dos métodos de cracking de senhas mais populares. No entanto, não é apenas para...

Ferramentas para ataques de força bruta

Ferramentas para ataques de força bruta

Veja abaixo as principais ferramentas usadas para ataques de força bruta. Lembre-se: o objetivo principal deste site é...


© Direitos Reservados. In Year 2017.