XSS (Cross Site Scripting)
•  O ataque de XSS ocorre quando um atacante utiliza a aplicação web para 
  enviar códigos maliciosos, geralmente na forma de Browser Side Scripts 
  para um usuário acessar. 
• A vulnerabilidade de Cross-Site-Script (XSS) é umas das mais antigas e 
  presentes desde os primórdios da programação para Web dinâmica, a falha 
  de XSS é extremamente encontrada nos sistemas Web , permite ao 
  atacante obter controle total da sessão de autenticação do usuário vítima. 
• A vulnerabilidade de XSS executa códigos JavaScript no navegador da vítima 
  sem o consentimento dela. Com isto, é possível enviar requisições para o 
  servidor utilizando as credenciais de permissão da vítima atacada. Também 
  é possível fazer o sequestro de sessão (do inglês session hijacking), que 
  permite acessar o sistema com autenticação da vítima. 
  defacement(pixação), disseminação de worms, etc.
Ataque
• O atacante pode utilizar o XSS para enviar um script malicioso 
  com diversas finalidades:

  - Roubar cookies do browser para efetuar um sequestro de 
  sessão;
  - Iludir o usuário para que este acesse um determinado conteúdo 
  e preencha dados seus pensando que está utilizando o site real, 
  quando na verdade o conteúdo que o mesmo está acessando faz 
  parte de um HTML malicioso que foi embutido em algum 
  componente vulnerável da aplicação.
Exemplo
•   http://www.eurocolori.com/page/prodotti.php?id=22"><script>alert("XXS DETECTED XCode Exploit 
    Scanner")</script>
• Ao acessar o endereço, o código Javascript será executado porém, enviando 
  o endereço citado acima, um usuário que tenha o mínimo de preocupação 
  com segurança facilmente notaria que se trata de uma tentativa de ataque. 
  Para evitar esse tipo de desfeche, um atacante tenta ao máximo esconder o 
  que poderia ser um ataque. Desta forma, a vítima ficaria insegura quanto à 
  possibilidade de ser um ataque ou não e, em muitas vezes, “arriscaria”. Um 
  exemplo onde o atacante “camuflaria” as assinaturas do ataque poderia ser 
  enviar o seguinte endereço: 
•   http://www.eurocolori.com/page/prodotti.php?id=22 =%3c%73%63%72%69%70%74%3e%61%6c
    %65%72%74%28%27%56%75%6c%6e%65%72%61%76%65%6c%20%61%20%58%53%53%27%29%3c%2f
    %73%63%72%69%70%74%3e
Como Evitar Ataques XSS

           A melhor maneira de proteger uma aplicação web de ataques XSS é garantir 
que sua aplicação realize validação de todos os cabeçalhos, cookies, strings de consulta, 
campos de formulário e campos escondidos (i.e., todos os parâmetros) contra uma 
rigorosa especificação do que pode ser permitido.

            Codificar a saída fornecida pelo usuário pode ajudar a mitigar as 
vulnerabilidades XSS prevenindo scripts inseridos de serem transmitidos para usuários em 
formato executável. Aplicações podem ter ganhos significativos de proteção contra 
ataques baseados em javascript pela conversão dos seguintes caracteres em todos as 
entradas geradas para o código HTML apropriado:
De Para   < <  > > ( (  ) ) # # & &
O projeto de Filtros OWASP está produzindo componentes reutilizáveis em várias 
linguagens para ajudar a prevenir muitas formas de adulterar parâmetros, incluindo a 
injeção de ataques XSS. OWASP também tem lançado o CodeSeeker, um firewall de nível 
de aplicação. Adicionalmente, o programa de treinamento OWASP WebGoat tem lições 
sobre Cross Site scripting e codificação de dados.
DIEGO SOUZA / LEANDRO ALBERTO

TEMA : CROSS SITE SCRIPTING (XSS)

Trabalho apresentado à disciplina Segurança de Aplicativos ao
  professor Ricardo Salvatore
       • PÓS- GRADUAÇÃO SEGURANÇA EM REDES DE
                        COMPUTADORES
                UNIVERSIDADE ESTÁCIO DE SÁ
                       RIO DE JANEIRO
                             2012

Cross Site Scripting - XSS

  • 2.
    XSS (Cross SiteScripting) •  O ataque de XSS ocorre quando um atacante utiliza a aplicação web para  enviar códigos maliciosos, geralmente na forma de Browser Side Scripts  para um usuário acessar.  • A vulnerabilidade de Cross-Site-Script (XSS) é umas das mais antigas e  presentes desde os primórdios da programação para Web dinâmica, a falha  de XSS é extremamente encontrada nos sistemas Web , permite ao  atacante obter controle total da sessão de autenticação do usuário vítima.  • A vulnerabilidade de XSS executa códigos JavaScript no navegador da vítima  sem o consentimento dela. Com isto, é possível enviar requisições para o  servidor utilizando as credenciais de permissão da vítima atacada. Também  é possível fazer o sequestro de sessão (do inglês session hijacking), que  permite acessar o sistema com autenticação da vítima.  defacement(pixação), disseminação de worms, etc.
  • 3.
    Ataque • O atacante pode utilizar o XSS para enviar um script malicioso  com diversas finalidades: - Roubar cookies do browser para efetuar um sequestro de  sessão; - Iludir o usuário para que este acesse um determinado conteúdo  e preencha dados seus pensando que está utilizando o site real,  quando na verdade o conteúdo que o mesmo está acessando faz  parte de um HTML malicioso que foi embutido em algum  componente vulnerável da aplicação.
  • 4.
    Exemplo • http://www.eurocolori.com/page/prodotti.php?id=22"><script>alert("XXS DETECTED XCode Exploit  Scanner")</script> • Ao acessar o endereço, o código Javascript será executado porém, enviando  o endereço citado acima, um usuário que tenha o mínimo de preocupação  com segurança facilmente notaria que se trata de uma tentativa de ataque.  Para evitar esse tipo de desfeche, um atacante tenta ao máximo esconder o  que poderia ser um ataque. Desta forma, a vítima ficaria insegura quanto à  possibilidade de ser um ataque ou não e, em muitas vezes, “arriscaria”. Um  exemplo onde o atacante “camuflaria” as assinaturas do ataque poderia ser  enviar o seguinte endereço:  • http://www.eurocolori.com/page/prodotti.php?id=22 =%3c%73%63%72%69%70%74%3e%61%6c %65%72%74%28%27%56%75%6c%6e%65%72%61%76%65%6c%20%61%20%58%53%53%27%29%3c%2f %73%63%72%69%70%74%3e
  • 7.
    Como Evitar AtaquesXSS    A melhor maneira de proteger uma aplicação web de ataques XSS é garantir  que sua aplicação realize validação de todos os cabeçalhos, cookies, strings de consulta,  campos de formulário e campos escondidos (i.e., todos os parâmetros) contra uma  rigorosa especificação do que pode ser permitido. Codificar a saída fornecida pelo usuário pode ajudar a mitigar as  vulnerabilidades XSS prevenindo scripts inseridos de serem transmitidos para usuários em  formato executável. Aplicações podem ter ganhos significativos de proteção contra  ataques baseados em javascript pela conversão dos seguintes caracteres em todos as  entradas geradas para o código HTML apropriado: De Para   < <  > > ( (  ) ) # # & & O projeto de Filtros OWASP está produzindo componentes reutilizáveis em várias  linguagens para ajudar a prevenir muitas formas de adulterar parâmetros, incluindo a  injeção de ataques XSS. OWASP também tem lançado o CodeSeeker, um firewall de nível  de aplicação. Adicionalmente, o programa de treinamento OWASP WebGoat tem lições  sobre Cross Site scripting e codificação de dados.
  • 8.
    DIEGO SOUZA /LEANDRO ALBERTO TEMA : CROSS SITE SCRIPTING (XSS) Trabalho apresentado à disciplina Segurança de Aplicativos ao professor Ricardo Salvatore • PÓS- GRADUAÇÃO SEGURANÇA EM REDES DE COMPUTADORES UNIVERSIDADE ESTÁCIO DE SÁ RIO DE JANEIRO 2012