SlideShare a Scribd company logo
1 of 18
A5 – Cross Site Request Forgery



           Tiago Natel de Moura
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
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.
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.
Exemplo 1: Engenharia Social


• http://goo.gl/NtNXR resolve para:
• http://bank.com/transfer.do?
  dest_account=66666&amount=5000.00
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
Alvos



•   Internet Banking
•   Redes Sociais
•   WebMail
•   Intranets
•   outros
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
SocialEngine 0Day
SocialEngine 0Day
SocialEngine 0Day




• SocialEngine é uma aplicação web para
  criação de redes sociais customizáveis.
• Feita em PHP com Zend Framework
• Proprietário
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
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
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).
Soluções Já existentes



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

Teste
• OWASP CSRFTester Project
Google Groups CSRF



• Google Groups Profile Delete CSRF
• http://groups.google.com/groups/profile/add
  photo?Action.Delete=1
Obrigado!

More Related Content

Similar to Cross site request forgery

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
OWASP Brasília
 
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
Clavis Segurança da Informação
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
Marcio Cunha
 

Similar to Cross site request forgery (20)

ENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na WebENSOL 2011 - OWASP e a Segurança na Web
ENSOL 2011 - OWASP e a Segurança na Web
 
Introducao WAF Tchelinux 2012
Introducao WAF Tchelinux 2012Introducao WAF Tchelinux 2012
Introducao WAF Tchelinux 2012
 
Ransomware
RansomwareRansomware
Ransomware
 
Introducão a Web Applications Firewalls
Introducão a Web Applications FirewallsIntroducão a Web Applications Firewalls
Introducão a Web Applications Firewalls
 
Internet e Segurança - Direito e Tecnologia da Informação - Dicas de segurança
Internet e Segurança - Direito e Tecnologia da Informação - Dicas de segurançaInternet e Segurança - Direito e Tecnologia da Informação - Dicas de segurança
Internet e Segurança - Direito e Tecnologia da Informação - Dicas de segurança
 
Owasp ZAP - Jeronimo Zucco - Tchelinux Caxias 2018
Owasp ZAP - Jeronimo Zucco - Tchelinux Caxias 2018Owasp ZAP - Jeronimo Zucco - Tchelinux Caxias 2018
Owasp ZAP - Jeronimo Zucco - Tchelinux Caxias 2018
 
Detectando Vulnerabilidades em seu Site utilizando OWASP ZAP - Zed Attack Proxy
Detectando Vulnerabilidades em seu Site utilizando OWASP ZAP - Zed Attack ProxyDetectando Vulnerabilidades em seu Site utilizando OWASP ZAP - Zed Attack Proxy
Detectando Vulnerabilidades em seu Site utilizando OWASP ZAP - Zed Attack Proxy
 
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
 
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
 
"Hacking+PHP"
"Hacking+PHP""Hacking+PHP"
"Hacking+PHP"
 
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
 
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...
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
 
Internet, Wikis, blogues e redes sociais
Internet, Wikis, blogues e redes sociaisInternet, Wikis, blogues e redes sociais
Internet, Wikis, blogues e redes sociais
 
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
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?
 
Meteor - TechParty 2015
Meteor - TechParty 2015Meteor - TechParty 2015
Meteor - TechParty 2015
 
Segurança & Ruby on Rails
Segurança & Ruby on RailsSegurança & Ruby on Rails
Segurança & Ruby on Rails
 

Cross site request forgery

  • 1. A5 – Cross Site Request Forgery Tiago Natel de Moura
  • 2. 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
  • 3. 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.
  • 4. 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.
  • 5. Exemplo 1: Engenharia Social • http://goo.gl/NtNXR resolve para: • http://bank.com/transfer.do? dest_account=66666&amount=5000.00
  • 6.
  • 7. 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
  • 8. Alvos • Internet Banking • Redes Sociais • WebMail • Intranets • outros
  • 9. 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
  • 12. SocialEngine 0Day • SocialEngine é uma aplicação web para criação de redes sociais customizáveis. • Feita em PHP com Zend Framework • Proprietário
  • 13. 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
  • 14. 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
  • 15. 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).
  • 16. Soluções Já existentes Implementação: • OWASP CSRFGuard Project • ESAPI Framework Teste • OWASP CSRFTester Project
  • 17. Google Groups CSRF • Google Groups Profile Delete CSRF • http://groups.google.com/groups/profile/add photo?Action.Delete=1