Copyright © 2007 - The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.

Slides:



Advertisements
Similar presentations
JQuery MessageBoard. Lets use jQuery and AJAX in combination with a database to update and retrieve information without refreshing the page. Here we will.
Advertisements

Copyright © 2003 Pearson Education, Inc. Slide 3-1 Created by Cheryl M. Hughes The Web Wizards Guide to XML by Cheryl M. Hughes.
Nick Feamster CS 6262 Spring 2009
LIS650lecture 1 XHTML 1.0 strict Thomas Krichel
HTML Basics Customizing your site using the basics of HTML.
Ben Livshits and Úlfar Erlingsson Microsoft Research.
Cross Site Scripting (XSS)
Cross-site Request Forgery (CSRF) Attacks
Past, Present and Future By Eoin Keary and Jim Manico
Web Security Never, ever, trust user inputs Supankar.
The OWASP Foundation Web Application Security Host Apps Firewall Host Apps Database Host Web serverApp serverDB server Securing the.
© 2008 Security Compass inc. 1 Firefox Plug-ins for Application Penetration Testing Exploit-Me.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
HI-TEC 2011 SQL Injection. Client’s Browser HTTP or HTTPS Web Server Apache or IIS HTML Forms CGI Scripts Database SQL Server or Oracle or MySQL ODBC.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
0 The Past, Present and Future of XSS Defense Jim Manico 2011 OWASP Brussels.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
A NTI S AMY J AVA I NTRODUCTION Wang Wenjun June 2011.
©2009 Justin C. Klein Keane PHP Code Auditing Session 5 XSS & XSRF Justin C. Klein Keane
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
WebGoat & WebScarab “What is computer security for $1000 Alex?”
Blackbox Reversing of XSS Filters Alexander Sotirov ekoparty 2008.
CM143 - Web Week 2 Basic HTML. Links and Image Tags.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
Introduction to InfoSec – Recitation 10 Nir Krakowski (nirkrako at post.tau.ac.il) Itamar Gilad (itamargi at post.tau.ac.il)
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
Javascript and the Web Whys and Hows of Javascript.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Prevent Cross-Site Scripting (XSS) attack
+ Websites Vulnerabilities. + Content Expand of The Internet Use of the Internet Examples Importance of the Internet How to find Security Vulnerabilities.
Server-side Scripting Powering the webs favourite services.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
CSCI 6962: Server-side Design and Programming Secure Web Programming.
.  Entertain  Inform  Educate  Blogs  Sell  Date  Gamble  Religion.
Copyright 2007 © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Using Html Basics, Text and Links. Objectives  Develop a web page using HTML codes according to specifications and verify that it works prior to submitting.
Krishna Mohan Koyya Glarimy Technology Services
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
INTRODUCTION TO JAVASCRIPT AND DOM Internet Engineering Spring 2012.
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
Copyright 2007, Information Builders. Slide 1 Understanding Basic HTML Amanda Regan Technical Director June, 2008.
Foundations of Network and Computer Security J J ohn Black CSCI 6268/TLEN 5550, Spring 2013.
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 1 RubyJax Brent Morris/
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Forms and Server Side Includes. What are Forms? Forms are used to get user input We’ve all used them before. For example, ever had to sign up for courses.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Web Applications Testing By Jamie Rougvie Supported by.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Trevor Jim Nikhil Swamy Michael Hicks Defeating Script Injection Attacks with Browser-Enforced Embedded Policies Jason FroehlichSeptember 24, 2008.
Introduction to JavaScript MIS 3502, Spring 2016 Jeremy Shafer Department of MIS Fox School of Business Temple University 2/2/2016.
INTERNET APPLICATIONS CPIT405 Forms, Internal links, meta tags, search engine friendly websites.
By Collin Donaldson. Hacking is only legal under the following circumstances: 1.You hack (penetration test) a device/network you own. 2.You gain explicit,
Introduction to HTML Dave Edsall IAGenWeb County Coordinator’s Conference June 30, 2007.
SlideSet #20: Input Validation and Cross-site Scripting Attacks (XSS) SY306 Web and Databases for Cyber Operations.
Introduction to.
Javascript worms By Benjamin Mossé SecPro
Google’s Gruyere1 : An XSS Example Presented by: Terry Gregory
Blackbox Reversing of XSS Filters
Building Secure ColdFusion Applications
An Introduction to Web Application Security
Web Programming A different world! Three main languages/tools No Java
HTML A brief introduction HTML.
Foundations of Network and Computer Security
Computer communications
Cross-Site Scripting Attack (XSS)
Cross Site Request Forgery (CSRF)
Presentation transcript:

Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike 2.5 License. To view this license, visit The OWASP Foundation OWASP & WASC AppSec 2007 Conference San Jose – Nov Anti Samy picking a fight with xss Arshan Dabirsiaghi, OWASP Peasant Senior Application Security Engineer, Aspect Security (301)

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 who am i? Name Arshan Dabirsiaghi (gesundheit) Trade Security hobbyist & developer Job Senior Application Security Engineer with Aspect Security Side Job Liverpool fan (go gerrard!) Political Affiliation Plutocrat Quote “poor people are crazy; i’m eccentric”

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 samy vs arshan  aka good vs evil,  sammy hagar vs david lee roth  ryu vs ken  …an old age old battle 3

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007  Taller, better looking  Persian (exotic)  More chest hair  Amazing in the sack  Lots of friends  Can divide by zero  Criminal record  Iranian (call DHS)  Untested in the sack  A lot of notoriety and street cred  Can’t get friends the old fashioned way, has to hack them 4 Arshansamy

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 talk agenda – socratic stylez  what is stored/persistent xss?  we’ll figure out the problem  who is samy?  we’ll see a real world example of problem  why are you wasting my time? its nice out  i’ll explain how i can help solve the problem  how can you prove it?  demo + metrics

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 reflected xss – the trogdor analogy  attacker crafts a URL that submits JS to the application and sends that URL it to eleventy billion (11x10 mc 2 ) peasants  one peasant clicks on the link and their browser sends the JS to the application  the web app reflects the input (containing JS) to the browser and the JS gets exec’d  xss has now burninated the victim

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 reflected xss - illustrated Hey Jen, click on this link - itsa soooo good!!!?! alert(‘xss’) *deAthL0rd420* /googleTalk/irc/etc.

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 reflected xss - illustrated GET /logon.jsp?uid=“> alert(‘xss’) HTTP/1.1 User-Agent: Lynx Cookie: Session_Cookie: F24EX98H3L3GAW1; HTTP/HTTPS

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 reflected xss - illustrated Logon Name: <input name=“uid” value=“”> alert(‘xss’) ”> … HTTP/HTTPS

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 stored xss – the arsenic in the well  attacker submits sticky (persisted) input to the app (e.g., blog comment/user profile)  i mention the input contains JS? whoops  later, some random peasant comes along and views the profile or blog comment  application displays comment/profile to user browser and JS inside it gets exec’d instead of displayed on browser  hours later, a seagull dnky punches an angry pirate to death (totally unrelated)

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 stored xss - illustrated POST /setMyProfile.jsp HTTP/1.1 User-Agent: Lynx Cookie: Session_Cookie: F24EX98H3L3GAW1; profile= alert(‘hi’) *deAthL0rd420* HTTP/HTTPS

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 stored xss - illustrated … This user’s profile: alert(‘hi’) 1st person to view attacker’s profile HTTP/HTTPS 2nd person to view attacker’s profile

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 the story of samy  weren’t you here an hour ago?  well, you blew it  … ok, i’ll tell

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 the story of samy (part 2 of 3)  myspace™ is one giant advertisement banner that has a hidden social networking site inside of it (like an easter egg)  you setup a profile, pics, etc. for other people to see  samy wanted an xss worm in his own profile that made the reader his friend and new source of worm

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 the story of samy (part 3 of 3)  myspace did well not to let any JS through  samy used ‘ java\nscript ’ since ‘ javascript ’ was filtered out, String.fromCharCode(34) to generate a double quote, etc.  10 hours – 560 friends, 13 hours – 6400, 18 hours – 1,000,000, 19 hours – entire site is down

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 what did myspace do wrong?  they used a word blacklist  negative security models are error prone  unknown attacks / fragmenting / encoding can usually bypass (sometimes trivially)

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 do sites really need html from users? users want to customize profiles community sites like eBay/craigslist allow public listings cm solutions like magnolia, dotnetnuke, etc rich comment sharing on blogs, news sites, etc

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 this is a bad situation… F5 // Defcon 31 // Threat level Midnight DISASTER – what to do?!!?1!? web apps trying to validate that HTML with blacklists sites need to allow users to provide HTML HTML the worst mashup of data and code ever

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007  an HTML validation tool and API  funded by an OWASP Spring of Code grant  uses a positive security model  takes dirty HTML/CSS that could contain xss and spits out a safe version of that input while retaining all formatting code  (applause)

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 goals for anti-samy  provide high assurance  provide 99% (or close enough) protection against xss  browser wars, new w3c directives, etc. cause rules to change  be portable  works with terribly broken html  easy-to-use API or tool  use single XML policy file with default settings providing high assurance  absorbable by validator implementations in different languages  be able to provide friendly feedback, able to just “make it work”  users may copy html/js from a site they like  not all JavaScript is xss, user intention may not be malicious  help user to tune html/js to work with requirements  use it to meet girls  this goal is not going so well  do you know anyone?

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 anti samy seen from outer space dirty html gets run through nekoHTML for structural sanitization (and legal validation)

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 neko validation 22 body divb u (text) p img src=javascript:xss() src=hax.js style=expression(…) samy is my hero id=foo samy is my hero \0 - DOM object - fragmenting attacks gone - html now sanitized (text) script <

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 anti samy seen from outer space Step through DOM tree and validate each node according to the policy file… filter / remove nodes / content or attributes as needed

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 antisamy.xml – customize to your site’s policy Slashdot - links, markup E-Bay - links, markup, images, etc MySpace - links, markup, images, stylesheets, etc

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 common stores in antisamy.xml Common Regular Expressions (write once then use anywhere by name) Common Tag Attributes (define attribute once then use in many tags) Global Tag Attributes (define implicit attributes for all tags)

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 validation step-through (this slide is bananas) 26 head divb(text) a img src= style=expression(…) samy is my hero id=foo (text) i < li href=javascript:attax() script content=0;url=javascript:attax() http-equiv=refresh meta src=bar.jpg style=background-image: url(‘javascript:attax()’) p antisamy.xml Tag Not Found!

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 anti samy seen from outer space Return as string or DOM object

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 CleanResults object  getCleanHTML() - String  getCleanXMLDocumentFragment() - DOM  getScanTime() – double  getErrorMessages() – String[]

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 how do i get started?  figure out policy on what tags and attributes to allow for your site  customize one of the default antisamy.xml files  add 5-10 lines of code to your app  done! congratulate self with guilt free visit to singles.net (look for tom stracener’s alternative profile)

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 using antisamy api is really hard

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 project goals  work to create a peer reviewed, time tested solution for validating html  destroy the idea that letting users provide their own html is too dangerous  enable the next gen of user generated content sites samy is a threat to western society

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 what about CSRF?  simple – go through antisamy.xml and remove the ability to have offsite resources  changing common attributes make this real easy  hosting csrf attacks is an accepted risk for many

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 known vulns?  us-ascii (any modulated charset – anybody check the other charsets?) utf-7 (if it even works anymore) – ANY time the browser is on a different planet than the input  I’ve asked pretty much everyone I met to look for bad regexps in it and tom stracener (m4m singles.net) found one bypass during the conference [but still gave it very high praise]  i need help locking down the regular expressions – plz help test we are a community! 33

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 change the world – for the better  Why should ebay, google, myspace be the only people able to have this functionality? 34 this is my pdp slide

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 demo time

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 demo time (0 of 3 – few javascript tests)  everything on rsnake’s cheat sheet  side note: really useful wasc project (enumerating javascript entry points)  Solution: already defended against in default policy files 36

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 demo time (1 of 3 –absolute div overlay)  create a div in our profile that overlays the entire page (or a subsection)  extremely effective phishing vector  SSL certificate is valid  look and feel matches expectations  Solution: insert a stylesheet rule in the policy file to prevent access to any position value except those we want 37

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 demo time (2 of 3 – div hijacking)  redefine an existing div “above” our profile  most stylesheets defined at the beginning of the page in or “at the top”  Solution: blacklist the IDs and selector names you want to prevent the user from being able to modify 38

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 demo time (3 of 3 – all your base are belong to us)  insert a tag to hijack internal resources  used to define a base for all relative URLs on the page  isn’t used a whole lot as it doesn’t work within javascript & some other issues  Solution: remove tag from policy file 39

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 Thanks to:  jason li for helping out with coding and brainstorming css attacks  jeff williams: useful feedback and general awesomeness  owasp for the grant  all you guys for listening  samy for being a hero 40

OWASP & WASC AppSec 2007 Conference – San Jose – Nov 2007 ¿questions?