Top Banner
Julian Cohen [email protected] OWASP DC August 2011
19

Cross Origin Resource Inclusion

Nov 07, 2014

Download

Technology

dcacm

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Cross Origin Resource Inclusion

Julian Cohen [email protected]

OWASP DC August 2011

Page 2: Cross Origin Resource Inclusion

Asynchronous JavaScript and XML Web 2.0 Design Trends Same Origin Policy Cross-Origin Resource Sharing Exploitation Some Thoughts Solutions

Page 3: Cross Origin Resource Inclusion

HOW DO THEY WORK?

Page 4: Cross Origin Resource Inclusion

A simple way to refresh content dynamically Prevents having to refresh the entire page

Originally

AJAX used for continuously updating content only

Today

AJAX is used for EVERYTHING

Page 5: Cross Origin Resource Inclusion

AJAX is being used more Frameworks automatically use AJAX

Page 6: Cross Origin Resource Inclusion

Scripts are confined to their originating site XMLHttpRequest() follows SOP

Page 7: Cross Origin Resource Inclusion

Demonstration

Page 8: Cross Origin Resource Inclusion

HOW DO THEY WORK?

Page 9: Cross Origin Resource Inclusion

Allows XMLHttpRequest to make cross-origin requests

Checks the remote host to see if it allows cross-origin requests

http://www.w3.org/TR/cors/

Page 10: Cross Origin Resource Inclusion

Scripts are confined to their originating site XMLHttpRequest() follows SOP

Documents are confined to their originating site XMLHttpRequest() checks with the remote host

Page 11: Cross Origin Resource Inclusion

Document Object Children

site: safe.com <html>

<head>

<script src="http://malicious.com/">

</head>

</html>

Page 12: Cross Origin Resource Inclusion

Different Document Objects

Frames

Windows

Cookies

Page 13: Cross Origin Resource Inclusion

Demonstration

Page 14: Cross Origin Resource Inclusion

Cross-origin DOM objects are owned by different Document objects

Setting innerHTML changes the ownerDocument property of DOM objects

http://dev.w3.org/html5/spec/Overview.html#innerhtml

Page 15: Cross Origin Resource Inclusion

Cookies stolen in client-side because of injected resource

Cookies were never sent cross-origin by the browser

Functionality exists: Access-Control-Allow-Credentials

Page 16: Cross Origin Resource Inclusion

Static Analysis

grep XMLHttpRequest

Dynamic Analysis

Google Chrome Developer Tools breakpoint

Taint analysis

Page 17: Cross Origin Resource Inclusion

Make Cookies HttpOnly Set Access-Control-Allow-Origin to null

Page 18: Cross Origin Resource Inclusion

Access-Control-Allow-Origin null by default Only allow safe DOM objects on a cross-

origin request

http://isisblogs.poly.edu/?p=26

Page 19: Cross Origin Resource Inclusion

Julian Cohen [email protected]

http://isisblogs.poly.edu/?p=26