this time
play

This time Continuing with Web Security Cookies XSS & CSRF - PowerPoint PPT Presentation

This time Continuing with Web Security Cookies XSS & CSRF Required reading for this lecture: Web Security: Are You Part Of The Problem? Cross Site Request Forgery: An Introduction HTTP GET requests Contain headers.


  1. Statefulness with Cookies Client Server HTTP Request Browser Web server State • Server stores state, indexes it with a cookie • Send this cookie to the client • Client stores the cookie and returns it with subsequent queries to that same server

  2. Statefulness with Cookies Client Server HTTP Request Cookie Browser Web server State • Server stores state, indexes it with a cookie • Send this cookie to the client • Client stores the cookie and returns it with subsequent queries to that same server

  3. Statefulness with Cookies Client Server Cookie Browser Web server State • Server stores state, indexes it with a cookie • Send this cookie to the client • Client stores the cookie and returns it with subsequent queries to that same server

  4. Statefulness with Cookies Client Server HTTP Response Cookie Browser Web server State • Server stores state, indexes it with a cookie • Send this cookie to the client • Client stores the cookie and returns it with subsequent queries to that same server

  5. Statefulness with Cookies Client Server HTTP Response Cookie Browser Web server Cookie State • Server stores state, indexes it with a cookie • Send this cookie to the client • Client stores the cookie and returns it with subsequent queries to that same server

  6. Statefulness with Cookies Client Server HTTP Response Cookie Browser Web server Cookie Cookie State • Server stores state, indexes it with a cookie • Send this cookie to the client • Client stores the cookie and returns it with subsequent queries to that same server

  7. Statefulness with Cookies Client Server HTTP Response Server Cookie Browser Web server Cookie Cookie State • Server stores state, indexes it with a cookie • Send this cookie to the client • Client stores the cookie and returns it with subsequent queries to that same server

  8. Statefulness with Cookies Client Server Server Cookie Browser Web server Cookie State • Server stores state, indexes it with a cookie • Send this cookie to the client • Client stores the cookie and returns it with subsequent queries to that same server

  9. Statefulness with Cookies Client Server HTTP Request Server Cookie Browser Web server Cookie State • Server stores state, indexes it with a cookie • Send this cookie to the client • Client stores the cookie and returns it with subsequent queries to that same server

  10. Statefulness with Cookies Client Server HTTP Request Server Cookie Browser Web server Cookie Cookie State • Server stores state, indexes it with a cookie • Send this cookie to the client • Client stores the cookie and returns it with subsequent queries to that same server

  11. Cookies are key-value pairs Set-Cookie:key=value; options; …. Headers Data <html> …… </html>

  12. Cookies are key-value pairs Set-Cookie:key=value; options; …. Headers Data <html> …… </html>

  13. Cookies Client Semantics Browser (Private) Data

  14. Cookies Client Semantics • Store “us” under the key “edition” (think of it like one big hash table) Browser (Private) Data

  15. Cookies Client Semantics • Store “us” under the key “edition” (think of it like one big hash table) Browser • This value is no good as of Wed Feb 18… (Private) Data

  16. Cookies Client Semantics • Store “us” under the key “edition” (think of it like one big hash table) Browser • This value is no good as of Wed Feb 18… • This value should only be readable by any domain ending in .zdnet.com (Private) Data

  17. Cookies Client Semantics • Store “us” under the key “edition” (think of it like one big hash table) Browser • This value is no good as of Wed Feb 18… • This value should only be readable by any domain ending in .zdnet.com • This should be available to any resource (Private) within a subdirectory of / Data

  18. Cookies Client Semantics • Store “us” under the key “edition” (think of it like one big hash table) Browser • This value is no good as of Wed Feb 18… • This value should only be readable by any domain ending in .zdnet.com • This should be available to any resource (Private) within a subdirectory of / Data • Send the cookie to any future requests to <domain>/<path>

  19. Cookies Client Semantics • Store “us” under the key “edition” (think of it like one big hash table) Browser • This value is no good as of Wed Feb 18… • This value should only be readable by any domain ending in .zdnet.com • This should be available to any resource (Private) within a subdirectory of / Data • Send the cookie to any future requests to <domain>/<path>

  20. Requests with cookies Subsequent visit …

  21. Requests with cookies Response Subsequent visit …

  22. Requests with cookies Response Subsequent visit …

  23. Why use cookies? • Personalization • Let an anonymous user customize your site • Store font choice, etc., in the cookie

  24. Why use cookies? • Tracking users • Advertisers want to know your behavior • Ideally build a profile across different websites Read about iPad on CNN, then see ads on Amazon?! - • How can an advertiser (A) know what you did on another site (S)?

  25. Why use cookies? • Tracking users • Advertisers want to know your behavior • Ideally build a profile across different websites Read about iPad on CNN, then see ads on Amazon?! - • How can an advertiser (A) know what you did on another site (S)? S shows you an ad from A; A scrapes the referrer URL

  26. Why use cookies? • Tracking users • Advertisers want to know your behavior • Ideally build a profile across different websites Read about iPad on CNN, then see ads on Amazon?! - • How can an advertiser (A) know what you did on another site (S)? S shows you an ad from A; A scrapes the referrer URL Option 1: A maintains a DB, Problem: IP addrs change indexed by your IP address

  27. Why use cookies? • Tracking users • Advertisers want to know your behavior • Ideally build a profile across different websites Read about iPad on CNN, then see ads on Amazon?! - • How can an advertiser (A) know what you did on another site (S)? S shows you an ad from A; A scrapes the referrer URL Option 1: A maintains a DB, Problem: IP addrs change indexed by your IP address - “Third-party cookie” Option 2: A maintains a DB 
 - Commonly used by large 
 indexed by a cookie ad networks (doubleclick)

  28. Ad provided by 
 an ad network

  29. Snippet of reddit.com source

  30. Snippet of reddit.com source Our first time accessing adzerk.net

  31. I visit reddit.com

  32. I visit reddit.com

  33. I visit reddit.com

  34. I visit reddit.com Later, I go to reddit.com/r/security

  35. I visit reddit.com Later, I go to reddit.com/r/security

  36. I visit reddit.com Later, I go to reddit.com/r/security

  37. I visit reddit.com We are only sharing this cookie with 
 *.adzerk.net; but we are telling them 
 about where we just came from Later, I go to reddit.com/r/security

  38. Cookies and web authentication • An extremely common use of cookies is to 
 track users who have already authenticated • If the user already visited 
 http://website.com/login.html?user=alice&pass=secret 
 with the correct password, then the server associates a “session cookie” with the logged-in user’s info • Subsequent requests (GET and POST) include the cookie in the request headers and/or as one of the fields : 
 http://website.com/doStuff.html?sid=81asf98as8eak • The idea is for the server to be able to say “I am talking to the same browser that authenticated Alice earlier.”

  39. Cookies and web authentication • An extremely common use of cookies is to 
 track users who have already authenticated • If the user already visited 
 http://website.com/login.html?user=alice&pass=secret 
 with the correct password, then the server associates a “session cookie” with the logged-in user’s info • Subsequent requests (GET and POST) include the cookie in the request headers and/or as one of the fields : 
 http://website.com/doStuff.html?sid=81asf98as8eak • The idea is for the server to be able to say “I am talking to the same browser that authenticated Alice earlier.” Attacks?

  40. Cross-Site Request Forgery (CSRF)

  41. URLs with side-effects http://bank.com/transfer.cgi?amt=9999&to=attacker • GET requests should have no side-effects, but often do • What happens if the user is logged in with an active session cookie and visits this link? • How could you possibly get a user to visit this link?

  42. Exploiting URLs with side-effects Client attacker.com Browser

  43. Exploiting URLs with side-effects Client attacker.com <img src=“http://bank.com/ transfer.cgi?amt=9999&to=attacker”> Browser

  44. Exploiting URLs with side-effects Client attacker.com <img src=“http://bank.com/ transfer.cgi?amt=9999&to=attacker”> Browser Browser automatically visits the URL to obtain what it believes will be 
 an image.

  45. Exploiting URLs with side-effects Client attacker.com <img src=“http://bank.com/ transfer.cgi?amt=9999&to=attacker”> Browser bank.com Browser automatically visits the URL to obtain what it believes will be 
 an image.

  46. Exploiting URLs with side-effects Client attacker.com <img src=“http://bank.com/ transfer.cgi?amt=9999&to=attacker”> Browser transfer.cgi?amt=9999&to=attacker http://bank.com/ 
 bank.com Browser automatically visits the URL to obtain what it believes will be 
 an image.

  47. Exploiting URLs with side-effects Client attacker.com <img src=“http://bank.com/ transfer.cgi?amt=9999&to=attacker”> bank.com Browser Cookie transfer.cgi?amt=9999&to=attacker http://bank.com/ 
 bank.com Browser automatically visits the URL to obtain what it believes will be 
 an image.

  48. Exploiting URLs with side-effects Client attacker.com <img src=“http://bank.com/ transfer.cgi?amt=9999&to=attacker”> bank.com Browser Cookie transfer.cgi?amt=9999&to=attacker http://bank.com/ 
 bank.com Browser automatically C o o k i e visits the URL to obtain what it believes will be 
 an image.

  49. Exploiting URLs with side-effects Client attacker.com <img src=“http://bank.com/ transfer.cgi?amt=9999&to=attacker”> bank.com Browser $$$ Cookie transfer.cgi?amt=9999&to=attacker http://bank.com/ 
 bank.com Browser automatically C o o k i e visits the URL to obtain what it believes will be 
 an image.

  50. Cross-Site Request Forgery • Target: User who has some sort of account on a vulnerable server where requests from the user’s browser to the server have a predictable structure • Attack goal: make requests to the server via the user’s browser that look to the server like the user intended to make them • Attacker tools: ability to get the user to visit a web page under the attacker’s control • Key tricks: • Requests to the web server have predictable structure • Use of something like <img src=…> to force the victim to send it

  51. CSRF protections • Client-side: • Server-side:

  52. CSRF protections • Client-side: Disallow one site to link to another?? The loss of functionality would be too high • Server-side:

  53. CSRF protections • Client-side: Disallow one site to link to another?? The loss of functionality would be too high • Server-side: Referrer URL: Only allow certain actions if the 
 referrer URL is from this site, as well Make the request unpredictable; put the cookie 
 into the request, as well http://website.com/doStuff.html?sid=81asf98as8eak

  54. How can you steal a session cookie? Client Server Cookie Server Browser Web server Cookie Cookie Cookie State

  55. How can you steal a session cookie? Client Server Cookie Server Browser Web server Cookie Cookie Cookie State • Compromise the user’s machine / browser • Sniff the network • DNS cache poisoning • Trick the user into thinking you are Facebook • The user will send you the cookie

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend