57
Everybody loves html5, h4ck3rs too

Everybody loves html5, h4ck3rs too

  • Upload
    finna

  • View
    54

  • Download
    0

Embed Size (px)

DESCRIPTION

Everybody loves html5, h4ck3rs too. ~# Whoami. Security Enthusiastic. Nahidul Kibria Co-Leader, OWASP Bangladesh, Senior Software Engineer, KAZ Software Ltd.   . Which part you care. Everybody loves html5…Well h4ck3rs too… What!!!. What is HTML5. Next major version of HTML. - PowerPoint PPT Presentation

Citation preview

Page 1: Everybody loves html5, h4ck3rs too

Everybody loves html5,h4ck3rs too

Page 2: Everybody loves html5, h4ck3rs too

2

~#WhoamiNahidul KibriaCo-Leader, OWASP Bangladesh,

Senior Software Engineer, KAZ Software Ltd.   

Security Enthusiastic

Page 3: Everybody loves html5, h4ck3rs too

3

Which part you careEverybody loves html5…Well

h4ck3rs too… What!!!

Page 4: Everybody loves html5, h4ck3rs too

4

Page 5: Everybody loves html5, h4ck3rs too

What is HTML5 Next major version of HTML. The Hypertext Markup Language

version 5 (HTML5) is the successor of HTML 4.01, XHTML 1.0 and XHTML 1.1

Adds new tags, event handlers to HTML. Many more….

HTML5 is not finished

5

Page 6: Everybody loves html5, h4ck3rs too

HTML5 is already  here.HTML5 TEST - http://html5test.com/

6

Many  features  supported by

latest versions of

FireFox, Chrome, Safari and  

Opera.

Page 7: Everybody loves html5, h4ck3rs too

Standard web model

Page 8: Everybody loves html5, h4ck3rs too

HTML5 OVERVIEW

Web sockets

COR

Iframe Sandboxin

g

Web Messaging

Page 9: Everybody loves html5, h4ck3rs too

WEB BROWSER SECURITY MODELS

The same origin policyThe cookies security modeThe Flash security model/SandBox

Page 10: Everybody loves html5, h4ck3rs too

Same Origin PolicyThe same origin policy prevents document or

script loaded from one origin, from getting or setting properties from a of a document from a different origin.

An origin is defined as the combination of

• host name,

• protocol,

• and port number;

Page 11: Everybody loves html5, h4ck3rs too

The Browser “Same Origin” Policy

11

bank.com

blog.net

XHR

XHR

document, cookies

TAG

TAG

JS

Page 12: Everybody loves html5, h4ck3rs too

What Happens if the Same Origin Policy Is Broken?

Page 13: Everybody loves html5, h4ck3rs too

13

Some major HTML5 feature• CORS-Cross-Origin Resource

Sharing • WebSockets• WebWorkers• Javascript APIs

Page 14: Everybody loves html5, h4ck3rs too

Today I want to show you how far and attacker go with simple JavaScript and html5

So you can convince your boss to give effort on security measure

My intention is not make you panic

Disclaimer

Page 15: Everybody loves html5, h4ck3rs too

15

Cross Origin Request (COR)• Originally  Ajax   calls  were subject   to  

Same Origin Policy

• Site  A  cannot   make XMLHttpRequests to  Site  B

• HTML5   makes  it  possible  to   make these  cross  domain 

• Calls site  A  can   now   make XMLHttpRequests to  Site  B  as  long  as  Site  B  allows  it.

Response   from  Site  B  should   include   a  header:

Access ‐Control ‐Allow‐Origin:  Site  A

Page 16: Everybody loves html5, h4ck3rs too

16

Cross-Origin Resource Sharing

<allow-access-from domain="*">

Page 17: Everybody loves html5, h4ck3rs too

The OWASP Foundationhttp://www.owasp.org

CORS-Cross-Origin Resource Sharing

17

Why programmer happy?

Lets see from attacker view

Page 18: Everybody loves html5, h4ck3rs too

18

XSS-Cross Site Scripting

Page 19: Everybody loves html5, h4ck3rs too

19

Demo

Page 20: Everybody loves html5, h4ck3rs too

20

xss attack vector

Page 21: Everybody loves html5, h4ck3rs too

Impact of xssHistory Stealing

Intranet Hacking

XSS Defacements

DNS pinning

IMAP3

MHTML

Hacking JSON

Cookie stealing

Clipboard stealing

Page 22: Everybody loves html5, h4ck3rs too

Cookie stealing

Pr3venting

Page 23: Everybody loves html5, h4ck3rs too

XSS Defacements

Page 24: Everybody loves html5, h4ck3rs too

If you still cannot manage your bossMore Evil use

I do not careShow me how my

org is effected

Page 25: Everybody loves html5, h4ck3rs too

25

Attacking intranet

Page 26: Everybody loves html5, h4ck3rs too

Obtaining NAT’ed IP Addresses

Java applet

Java apple

t

Java appl

et

Page 27: Everybody loves html5, h4ck3rs too

27

If the victim’s Web browser is a Mozilla/Firefox, it’s possible to skip the applet

<script> function natIP() { var w = window.location; var host = w.host; var port = w.port || 80; var Socket = (new java.net.Socket(host, port)).getLocalAddress().getHostAddress(); return Socket; } </script>

Page 28: Everybody loves html5, h4ck3rs too

28

Demo

Not only NAT’ed IP ,You can lots more system info

Page 29: Everybody loves html5, h4ck3rs too

29

Port ScanningO’ Really

Page 30: Everybody loves html5, h4ck3rs too

Port Scanningwindow.onerror = err;

<script src=http://ip/></script>

if (! msg.match(/Error loading script/))//ip does not exit’sElseFind internal ip

Page 31: Everybody loves html5, h4ck3rs too

Blind Web Server FingerprintingApache Web Server /icons/apache_pb.gifHP Printer /hp/device/hp_invent_logo.gif

<img src="http://intranet_ip/unique_image_url" onerror="fingerprint()" />

Page 32: Everybody loves html5, h4ck3rs too

32

HTML5 Made it easy

www.andlabs.org/tools/jsrecon.html

Demo

Page 33: Everybody loves html5, h4ck3rs too

33

What just happed

Page 34: Everybody loves html5, h4ck3rs too

34

Port Scanning: Beating protectionsBlocking example for known ports

(Firefox, WebSockets and CORS)➔ http://example.com:22Workaround!➔ ftp://example.com:22It works on Internet Explorer, Mozilla

Firefox, Google Chrome and SafariBased on timeouts, it can be configured

WTFun

Page 35: Everybody loves html5, h4ck3rs too

35

Port Scanning: result

Page 36: Everybody loves html5, h4ck3rs too

36

Self‐triggering XSS exploits  with HTML5

A common XSS occurrence is injection inside some attribute of INPUT tags. Current techniques require user interaction to trigger this XSS

<input type="text" value="‐>Injecting here" onmouseover="alert('Injected val')">

• HTML5   turns  this   in   to   self ‐triggering  XSS <input type="text” value="‐‐>Injecting

here" onfocus="alert('Injected  value')" autofocus>

Page 37: Everybody loves html5, h4ck3rs too

37

Black‐list XSS filtersHtml5 introduce many new tag

Page 38: Everybody loves html5, h4ck3rs too

38

How your browser become a proxy of

an attacker?

http://erlend.oftedal.no/blog/?blogid=107

Page 39: Everybody loves html5, h4ck3rs too

The OWASP Foundationhttp://www.owasp.org

CSRF(Cross-Site Request Forgery)

The Sleeping Giant

Page 40: Everybody loves html5, h4ck3rs too

Victim logon to bank.com

Page 41: Everybody loves html5, h4ck3rs too

The OWASP Foundationhttp://www.owasp.org

Converting POST to GET

Page 42: Everybody loves html5, h4ck3rs too

The OWASP Foundationhttp://www.owasp.org

Credentials Included

bank.com

blog.net

https://bank.com/fn?param=1JSESSIONID=AC934234…

Page 43: Everybody loves html5, h4ck3rs too

The OWASP Foundationhttp://www.owasp.org

Cross-Site Request Forgery

bank.com

attacker’s post at blog.net

Go to Transfer Assetshttps://bank.com/fn?param=1 Select FROM Fundhttps://bank.com/fn?param=1 Select TO Fundhttps://bank.com/fn?param=1 Select Dollar Amounthttps://bank.com/fn?param=1 Submit Transactionhttps://bank.com/fn?param=1 Confirm Transactionhttps://bank.com/fn?param=1

Page 44: Everybody loves html5, h4ck3rs too

The OWASP Foundationhttp://www.owasp.org

DemoXSS & CSRF- Killer Combo

Programmers Prepare, Users Beware<form method="POST" name="form0" action="http://my.victim.mutillidae:81/mutillidae/index.php?page=add-to-your-blog.php"><input type="hidden" name="csrf-token" value="SecurityIsDisabled"/><input type="hidden" name="blog_entry" value="This is come from CSRF"/><input type="hidden" name="add-to-your-blog-php-submit-button" value="Save Blog Entry"/></form>

Page 45: Everybody loves html5, h4ck3rs too

The OWASP Foundationhttp://www.owasp.orgHow Does CSRF

Work?Tags

<img src=“https://bank.com/fn?param=1”><iframe src=“https://bank.com/fn?param=1”><script src=“https://bank.com/fn?param=1”>

Autoposting Forms<body onload="document.forms[0].submit()">

<form method="POST" action=“https://bank.com/fn”> <input type="hidden" name="sp" value="8109"/>

</form>

XmlHttpRequestSubject to same origin policy

Page 46: Everybody loves html5, h4ck3rs too

What Can Attackers Do with CSRF?

46

Anything an authenticated user can do• Click links• Fill out and submit forms• Follow all the steps of a wizard

interface

Page 47: Everybody loves html5, h4ck3rs too

Using CSRF to Attack Internal Pages

47

attacker.com

internal.mybank.com

Allowed!

CSRF

Internal Site

TAG

internal browser

Page 48: Everybody loves html5, h4ck3rs too

48

Web Workers Web Workers provide the possibility for JavaScript to run in the

background.

Web Workers alone are not a security issue.

But they can be used indirectly for launching work intensive attacks without the user noticing it.

http://www.andlabs.org/tools/ravan.html

Page 49: Everybody loves html5, h4ck3rs too

49

Web Storage

Page 50: Everybody loves html5, h4ck3rs too

50

Web Storage Vuln. & Threats

Session Hijacking

• If session identifier is stored in local storage, it can be stolen with JavaScript.

• No HTTPOnly flag.

Disclosure of Confidential Data

• If sensitive data is stored in the local storage, it can be stolen with JavaScript.

User Tracking

• Additional possibility to identify a user.

Persistent attack vectors

• Attacker can be store persistently on the user browser

Page 51: Everybody loves html5, h4ck3rs too

51

Offline Web Application

Cache Poisoning

• Caching of the root directory possible.

• HTTP and HTTPs caching possible.

Page 52: Everybody loves html5, h4ck3rs too

52

Ok Enough, Just tell me can attacker Get a remote (Control)shell of my PC??

Page 53: Everybody loves html5, h4ck3rs too

53

Infection method known as Drive by download

Page 54: Everybody loves html5, h4ck3rs too

54

In summaryWeb Worker Cracking Hashes in JS Cloud=

Web Worker

Cross-origin

resource sharing

+ =Powerful DDoS attacks

Web Worker +

Cross-origin

resource sharing

+ Web socket = Web-based Botnet.

Page 55: Everybody loves html5, h4ck3rs too

55

Is HTML5 hopelessly (in)secure?

Ahem no…but security has been a major consideration in the design of the specification But it is incredibly hard to add features in any technology without increasing the possibility of abused.

Page 56: Everybody loves html5, h4ck3rs too

56

Reference Compass Security AG http://userguidepdf.info/html5-we

b-security-v1.html

http://html5sec.org https://www.owasp.org/index.php/HTML5

_Security_Cheat_Sheet http://dev.w3.org/html5/spec/Overview.ht

ml

Page 57: Everybody loves html5, h4ck3rs too

57

Twitter:@nahidupa

Be secure & safe

HTML5 make everybody happy including h4ck3rs and make security professional busy.