Definição – O que significa XSS Hole?
Um buraco XSS é um aplicativo da Web que renderiza conteúdo dinâmico para usuários com uma vulnerabilidade de segurança do computador. Esse aplicativo é cross-site scripting (XSS) e permite que um invasor explore os dados confidenciais de um usuário sem passar por um mecanismo de controle de acesso, como uma política de mesma origem. Esse defeito é mais apropriadamente conhecido como buraco XSS.
Definirtec explica XSS Hole
Por exemplo, o usuário pode encontrar um hiperlink em um aplicativo da Web apontando para algum conteúdo malicioso. O usuário pode clicar no link e ser levado a outra página contendo algum anúncio ou boletim de e-mail. Esta página reúne informações do usuário na forma de uma senha. Ele também gera uma página de saída maliciosa que indica algumas respostas falsas feitas para parecer genuínas para o usuário. Os dados inseridos pelo usuário podem ser mal utilizados ou a sessão do usuário pode ser sequestrada por roubo de cookies. Com base na sensibilidade dos dados coletados, o cross-site scripting pode variar de uma mera vulnerabilidade a uma séria brecha de segurança. Após a exploração da vulnerabilidade XSS, o invasor pode ignorar as políticas de controle de acesso da organização.
O conceito de cross-site scripting é baseado na mesma política original. As mesmas políticas originais afirmam que um navegador da Web usando JavaScript pode acessar diferentes propriedades e métodos pertencentes ao mesmo site sem quaisquer restrições. Os atacantes mal-intencionados podem explorar o conceito da mesma política original, injetando código malicioso em um site usando JavaScript. Quando as páginas da Web são visualizadas pelos usuários, os invasores podem reunir algumas informações úteis do usuário, como nome de usuário ou senha.
De acordo com as estatísticas coletadas pela Symantec em 2007, o script entre sites é responsável por 80% de todos os ataques à segurança executados usando computadores. Existem três tipos de script entre sites:
- XSS não persistente: O tipo não persistente de script entre sites é visto durante solicitações HTTP nas quais o cliente incorpora dados em uma solicitação HTTP. Quando o servidor usa dados enviados pelo cliente para gerar páginas, os furos XSS podem estar ativos se a solicitação não tiver sido limpa corretamente. As páginas HTML são compostas por conteúdo e apresentação. Se o usuário malicioso adicionar algum conteúdo que não foi validado, ocorrerá a injeção de marcação. O usuário comprometerá sua segurança ao inserir informações solicitadas pelo código malicioso. O invasor pode enganar o usuário para uma URL diferente, que pode conter um vírus mais sofisticado e adquirir informações importantes do usuário.
- XSS persistente: o conteúdo malicioso injetado pelo invasor é salvo no lado do servidor e todas as outras solicitações do cliente acessam o conteúdo modificado, o que representa um sério risco à segurança. Por exemplo, alguns fóruns permitem que o usuário poste mensagens formatadas em HTML. Portanto, um invasor pode incorporar um código JavaScript para apresentar uma caixa de texto maliciosa para coletar informações, como uma senha. O invasor também pode configurar o código JavaScript para salvar e transmitir todas as senhas inseridas no campo de texto.
- XSS baseado em DOM: O modelo de objeto de documento (DOM) é uma estrutura de árvore que representa todas as tags que aparecem em um documento que está em conformidade com os padrões XML. DOM é usado em JavaScript para acessar e manipular tags HTML e o conteúdo dentro das tags. Um invasor pode injetar uma parte mal-intencionada de código JavaScript que contém instruções DOM apropriadas para acessar e modificar informações importantes do usuário. Por exemplo, o invasor pode usar o DOM para redirecionar as informações do usuário por meio de um envio impróprio a um site malicioso de terceiros.