Cross Site Scripting
Fátima Ferreira de Sousa
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAIBA
Campus Cajazeiras
Curso Superior de Tecnologia em Análise e Desenvolvimento de
Sistemas
Disciplina: Segurança de Dados
Professor: Humberto Nunes
Cross Site Scripting ( XSS)
• É uma vulnerabilidade encontrada em aplicações
WEB que permite ao atacante inserir código em
uma página visitada por outro usuário.
• É causado por falhas nas validações dos
parâmetros de entrada do usuário e resposta do
servidor.
• Terceira de maior risco no Top Tem OWSASP 2013;
2
Cross Site Scripting ( XSS) - Ataque
• Na prática, o responsável pelo ataque executa
instruções no navegador da vítima usando um
aplicativo web vulnerável;
• Através de um XSS, o cracker injeta códigos
JavaScript em um campo texto de uma página já
existente e este JavaScript é apresentado para
outros usuários.
• Qualquer fonte de dados pode ser um vetor de
ataque, incluindo fontes internas como dados do
banco de dados.
3
Cross Site Scripting ( XSS) - Ataque 4
Tipos
Tipos de XSS
O XSS pode ser dividido em três categorias:
• Não persistente,
• Persistente (Stored),
• Document Object Model (DOM) Based.
6
Tipos de XSS – Não persistentes
• A exploração dessa vulnerabilidade envolve a
elaboração de uma solicitação com código a ser
inserido embutido e refletido para o usuário alvo
que faz a solicitação.
• São os mais comuns, sendo os principais
responsáveis por ataques de phishing.
• Esse tipo de ataque depende de uma ação do
usuário – normalmente um click num link.
7
Tipos de XSS – Não persistentes
• Um ataque Não persistente é normalmente
entregue via e-mail ou um site neutro.
• A isca é uma URL de aparência inocente,
apontando para um site confiável, mas contendo o
vetor de XSS.
• O XSS se beneficia da confiança depositada pelo
usuário no domínio.
8
Tipos de XSS – Não persistentes 9
Tipos de XSS – Persistentes
• Variante mais devastadora de uma falha de script cross-site;
• Ocorre quando os dados fornecidos pelo atacante são
salvos pelo servidor exibidos em páginas “normais”;
• Não depende da ação do usuário;
• Acontece em sites no qual o atacante pode postar texto:
• Fóruns, Twitter, Facebook;
• O código é projetado para se auto propagar através de contas,
criando um tipo de verme do lado do cliente.
10
Tipos de XSS – Persistentes
• O usuário torna-se vítima ao acessar a área afetada pelo
armazenamento do código mal-intencionado.
• Um usuário mal-intencionado pode potencialmente
atingir um grande número usuários apenas com uma
ação específica e facilitar o processo de engenharia
social.
• O atacante não precisa nem interagir diretamente com
a funcionalidade web para explorar esta vulnerabilidade.
11
Tipos de XSS – Persistentes 12
Tipos de XSS – DOM
• Ocorre quando um código JavaScript usa o parâmetro
passado na URL para escrever na própria página;
• Não necessita de interações diretas com o aplicativo
web;
• O código fonte da página é alterado, e apenas (por
norma) somente sofre essa alteração quando o
atacante assim o desejar.
• Utiliza-se de vulnerabilidades existentes na
interpretação do código HTML no ambiente do
navegador do usuário alvo.
13
Tipos de XSS – DOM
• Nos XSS baseados em DOM, os dados maliciosos não
tocam no servidor web;
• Uma das grandes {des}vantagens deste tipo de
ataque é sua discrição, ou seja, a vítima não
percebe que está sendo atacada.
14
Exemplo 15
Consequências do Ataque
• Dentre as principais consequências para o usuário
afetado, incluem:
• O Sequestro de sessão de usuários;
• Alteração do código HTML do aplicativo (visível somente do
lado do cliente);
• Redirecionar o usuário para sites maliciosos;
• Alteração do objeto DOM para captura de dados ou envio
de malware.
• Desfigurar sites;
• Inserir conteúdo hostil;
16
Detecção
• Gratuitas
• OWASP Xenotix
• OWASP Zap
• Website http://xss-scanner.com/
• Comerciais
• IBM App Scan
• Burp Pro
• DOMinatorPro
17
Protegendo-se contra-ataques XSS
• Identificar todas as instâncias dentro da aplicação
em que os dados são colocados nas respostas das
requisições;
• Verificar o formato dos dados introduzidos pelos utilizadores;
• Codificar os dados dos utilizadores afixados substituindo os
caracteres especiais pelos seus equivalentes em HTML ou na
tabela ASCII;
• As regras de negócio sobre os dados antes de aceitar a
entrada.
18
Protegendo-se contra-ataques XSS 19
Referências
• https://www.owasp.org/index.php/Category:OWASP_Top
_Ten_Project#tab=OWASP_Top_10_for_2013 ;
• https://www.owasp.org/index.php/XSS_(Cross_Site_Scripti
ng)_Prevention_Cheat_Sheet ;
• https://www.owasp.org/index.php/Cross
site_Scripting_(XSS);
20
21

Cross Site Scripting

  • 1.
    Cross Site Scripting FátimaFerreira de Sousa INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAIBA Campus Cajazeiras Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: Segurança de Dados Professor: Humberto Nunes
  • 2.
    Cross Site Scripting( XSS) • É uma vulnerabilidade encontrada em aplicações WEB que permite ao atacante inserir código em uma página visitada por outro usuário. • É causado por falhas nas validações dos parâmetros de entrada do usuário e resposta do servidor. • Terceira de maior risco no Top Tem OWSASP 2013; 2
  • 3.
    Cross Site Scripting( XSS) - Ataque • Na prática, o responsável pelo ataque executa instruções no navegador da vítima usando um aplicativo web vulnerável; • Através de um XSS, o cracker injeta códigos JavaScript em um campo texto de uma página já existente e este JavaScript é apresentado para outros usuários. • Qualquer fonte de dados pode ser um vetor de ataque, incluindo fontes internas como dados do banco de dados. 3
  • 4.
    Cross Site Scripting( XSS) - Ataque 4
  • 5.
  • 6.
    Tipos de XSS OXSS pode ser dividido em três categorias: • Não persistente, • Persistente (Stored), • Document Object Model (DOM) Based. 6
  • 7.
    Tipos de XSS– Não persistentes • A exploração dessa vulnerabilidade envolve a elaboração de uma solicitação com código a ser inserido embutido e refletido para o usuário alvo que faz a solicitação. • São os mais comuns, sendo os principais responsáveis por ataques de phishing. • Esse tipo de ataque depende de uma ação do usuário – normalmente um click num link. 7
  • 8.
    Tipos de XSS– Não persistentes • Um ataque Não persistente é normalmente entregue via e-mail ou um site neutro. • A isca é uma URL de aparência inocente, apontando para um site confiável, mas contendo o vetor de XSS. • O XSS se beneficia da confiança depositada pelo usuário no domínio. 8
  • 9.
    Tipos de XSS– Não persistentes 9
  • 10.
    Tipos de XSS– Persistentes • Variante mais devastadora de uma falha de script cross-site; • Ocorre quando os dados fornecidos pelo atacante são salvos pelo servidor exibidos em páginas “normais”; • Não depende da ação do usuário; • Acontece em sites no qual o atacante pode postar texto: • Fóruns, Twitter, Facebook; • O código é projetado para se auto propagar através de contas, criando um tipo de verme do lado do cliente. 10
  • 11.
    Tipos de XSS– Persistentes • O usuário torna-se vítima ao acessar a área afetada pelo armazenamento do código mal-intencionado. • Um usuário mal-intencionado pode potencialmente atingir um grande número usuários apenas com uma ação específica e facilitar o processo de engenharia social. • O atacante não precisa nem interagir diretamente com a funcionalidade web para explorar esta vulnerabilidade. 11
  • 12.
    Tipos de XSS– Persistentes 12
  • 13.
    Tipos de XSS– DOM • Ocorre quando um código JavaScript usa o parâmetro passado na URL para escrever na própria página; • Não necessita de interações diretas com o aplicativo web; • O código fonte da página é alterado, e apenas (por norma) somente sofre essa alteração quando o atacante assim o desejar. • Utiliza-se de vulnerabilidades existentes na interpretação do código HTML no ambiente do navegador do usuário alvo. 13
  • 14.
    Tipos de XSS– DOM • Nos XSS baseados em DOM, os dados maliciosos não tocam no servidor web; • Uma das grandes {des}vantagens deste tipo de ataque é sua discrição, ou seja, a vítima não percebe que está sendo atacada. 14
  • 15.
  • 16.
    Consequências do Ataque •Dentre as principais consequências para o usuário afetado, incluem: • O Sequestro de sessão de usuários; • Alteração do código HTML do aplicativo (visível somente do lado do cliente); • Redirecionar o usuário para sites maliciosos; • Alteração do objeto DOM para captura de dados ou envio de malware. • Desfigurar sites; • Inserir conteúdo hostil; 16
  • 17.
    Detecção • Gratuitas • OWASPXenotix • OWASP Zap • Website http://xss-scanner.com/ • Comerciais • IBM App Scan • Burp Pro • DOMinatorPro 17
  • 18.
    Protegendo-se contra-ataques XSS •Identificar todas as instâncias dentro da aplicação em que os dados são colocados nas respostas das requisições; • Verificar o formato dos dados introduzidos pelos utilizadores; • Codificar os dados dos utilizadores afixados substituindo os caracteres especiais pelos seus equivalentes em HTML ou na tabela ASCII; • As regras de negócio sobre os dados antes de aceitar a entrada. 18
  • 19.
  • 20.
    Referências • https://www.owasp.org/index.php/Category:OWASP_Top _Ten_Project#tab=OWASP_Top_10_for_2013 ; •https://www.owasp.org/index.php/XSS_(Cross_Site_Scripti ng)_Prevention_Cheat_Sheet ; • https://www.owasp.org/index.php/Cross site_Scripting_(XSS); 20
  • 21.