Índice:
Definição - O que significa o XSS Hole?
Um furo XSS é um aplicativo da Web que renderiza conteúdo dinâmico para usuários com uma vulnerabilidade de segurança do computador. Esse aplicativo é XSS (cross-site scripting) 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 um furo XSS.
Techopedia explica XSS Hole
Por exemplo, o usuário pode encontrar um hiperlink em um aplicativo Web apontando para algum conteúdo malicioso. O usuário pode clicar no link e ser direcionado para outra página que contém alguns boletins ou por email. 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 alguma resposta falsa personalizada para parecer genuína ao usuário. Os dados inseridos pelo usuário podem ser mal utilizados ou a sessão do usuário pode ser invadida por roubo de cookies. Com base na sensibilidade dos dados coletados, os scripts entre sites podem variar de uma mera vulnerabilidade a uma brecha grave 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 script entre sites é 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 nenhuma restrição. Os invasores maliciosos 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 exibidas pelos usuários, os atacantes podem coletar 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, os scripts entre sites representam 80% de todos os ataques de 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 higienizada corretamente. As páginas HTML são compostas de conteúdo e apresentação. Se o usuário mal-intencionado adicionar algum conteúdo que não foi validado, ocorrerá a injeção de marcação. O usuário comprometerá sua segurança inserindo as informações solicitadas pelo código malicioso. O invasor pode induzir o usuário a um 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 solicitações adicionais do cliente acessam o conteúdo modificado, o que representa um sério risco à segurança. Por exemplo, alguns fóruns permitem ao usuário postar mensagens formatadas em HTML. Portanto, um invasor pode incorporar um código JavaScript para apresentar uma caixa de texto mal-intencionada 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 em árvore que representa todas as tags que aparecem em um documento em conformidade com os padrões XML. O DOM é usado no JavaScript para acessar e manipular as tags HTML e o conteúdo delas. Um invasor pode injetar um código malicioso 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 através de um envio inadequado para um site malicioso de terceiros.