cross site request forgery

18
Tiago Natel de Moura A5 – Cross Site Request Forgery

Upload: tiago-natel-de-moura

Post on 27-Jun-2015

571 views

Category:

Documents


2 download

DESCRIPTION

CSRF

TRANSCRIPT

Page 1: Cross site request forgery

Tiago Natel de Moura

A5 – Cross Site Request Forgery

Page 2: Cross site request forgery

About Me

• Tiago Natel de Moura aka i4k• Co-Fundador do BugSec Security Team

• http://bugsec.googlecode.com/• Co-Fundador do OWASP Florianópolis.• Consultor de Segurança na SEC+

• www.secplus.com.br

Page 3: Cross site request forgery

O que é CSRF?

• Cross Site Request Forgery é um ataque que força um usuário a executar ações arbitrárias numa aplicação web que ele esteja autenticado.

• Usando diversas técnicas como engenharia social, XSS, URL encurtadas, etc, um atacante pode induzer usuários de uma aplicação web a executar ações de sua escolha.

Page 4: Cross site request forgery

Exemplo 1: Engenharia Social

• http://bank.com/ é vulnerável a CSRF• Usuário Alice tem conta em Bank e recebe um

spam com o link encurtado: http://goo.gl/NtNXR

• Se ela clicar no link e coincidir de estar logada na conta do seu banco ela irá transferir $ 5000.00 para a conta do cracker.

Page 5: Cross site request forgery

Exemplo 1: Engenharia Social

• http://goo.gl/NtNXR resolve para:• http://bank.com/transfer.do?

dest_account=66666&amount=5000.00

Page 6: Cross site request forgery
Page 7: Cross site request forgery

Exemplo 2: XSS

• http://bank.com/ é vulnerável a CSRF.• Alice tem conta em Bank e também visita o blog

de Bob que é vulnerável a XSS.• Atacante posta um comentário no blog de Bob

com uma imagem invisível <img src=”http://bank.com/transfer.do?dest_acc=6666&amount=5000” width="1" height="1" border="0" />

• Quando Alice visitar o blog de Bob seu navegador irá tentar requisitar a imagem na URL e vai completar a transação.

Page 8: Cross site request forgery

Alvos

• Internet Banking• Redes Sociais• WebMail• Intranets• outros

Page 9: Cross site request forgery

SocialEngine 4.2.2 0Day

• Product: Social Engine v4.2.2• Vendor-URL: http://www.socialengine.net/• Discovered by: Tiago Natel de Moura aka "i4k"• Discovered at: 10/04/2012• CVE Notified: 10/04/2012• CVE Number: CVE-2012-2216• Vendor Notified at: 11/04/2012• CVE published: None

Page 10: Cross site request forgery

SocialEngine 0Day

Page 11: Cross site request forgery

SocialEngine 0Day

Page 12: Cross site request forgery

SocialEngine 0Day

• SocialEngine é uma aplicação web para criação de redes sociais customizáveis.

• Feita em PHP com Zend Framework• Proprietário

Page 13: Cross site request forgery

Falhas Encontradas

• Persistent XSS: music upload• Persistent XSS: create events• Reflected XSS: search form of events • CSRF: – Events: Abrir/Fechar/Observar eventos– Forum: Abrir/Fechar tópicos– Classified: Abrir/Fechar

Page 14: Cross site request forgery

CSRF

• Fechar um evento: – GET /index.php/events/topic/close/close/1/event_id/2/topic_id/2

• Abrir um evento:– GET /index.php/events/topic/close/close/0/event_id/2/topic_id/2

• Fechar um tópico do fórum:– GET /index.php/forums/topic/4/example-topic/close/close/1

• Abrir um tópico do fórum:– GET /index.php/forums/topic/4/example-topic/close/close/0

Page 15: Cross site request forgery

Contra-Medidas e Proteções

• Para áreas críticas:– Envie um token único em cada requisição.• Esse token deve identificar a sessão atual do usuário.

Usando a Session do servidor web e opcionalmente em conjunto com outras informações (UserAgent, Referer, etc).

– Valide o Referer– Impossibilite XSS nessas áreas (não reflita inputs

do usuário nem apresente informações persistidas).

Page 16: Cross site request forgery

Soluções Já existentes

Implementação:• OWASP CSRFGuard Project• ESAPI Framework

Teste• OWASP CSRFTester Project

Page 17: Cross site request forgery

Google Groups CSRF

• Google Groups Profile Delete CSRF• http://groups.google.com/groups/profile/

addphoto?Action.Delete=1

Page 18: Cross site request forgery

Obrigado!