27
HTML Binary Hacks - GIF89a Polyglot - Cybozu Labs, Inc. TAKESAKO <[email protected]>

HTML Binary Hacks & GIF89a Ployglot

Embed Size (px)

DESCRIPTION

http://conferences.yapcasia.org/ya2008/talk/1299

Citation preview

Page 1: HTML Binary Hacks & GIF89a Ployglot

HTML Binary Hacks- GIF89a Polyglot -HTML Binary Hacks- GIF89a Polyglot -

Cybozu Labs, Inc.TAKESAKO

<[email protected]>

Page 2: HTML Binary Hacks & GIF89a Ployglot

2

I’ll show you, HTML 2.0

hacks.

I’ll show you, HTML 2.0

hacks.

Page 3: HTML Binary Hacks & GIF89a Ployglot

3

1.0HTML Browser

Detection

Page 4: HTML Binary Hacks & GIF89a Ployglot

4

HTML QuizHTML Quiz

<img src=”1.gif” src=”2.gif”>

(1) 1.gif

(2) 2.gif

(3) N/A

Answers.

Q1. What will you see? (on your browser)

Page 5: HTML Binary Hacks & GIF89a Ployglot

5

Q2. What’s this?Q2. What’s this?

<img /src = ”1.gif” ””src{\x00} = ”2.gif” ’src{\x0c} = ”3.gif” src = ”4.gif”/>

(1) 1.gif

(2) 2.gif

(3) 3.gif

(4) 4.gif

Answers.

→ ie→ Safari→ firefox→ others

Page 6: HTML Binary Hacks & GIF89a Ployglot

6

Page 7: HTML Binary Hacks & GIF89a Ployglot

7

print<<EOF;<img /src\x00="ie.gif" /''src\x00="firefox1_5.gif" /''src="firefox2_0.gif" /""src="gecko_others.gif" "s\x00rc="safari2.gif" "src="safari3.gif" ""src="konqueror.gif" src\x00="w3m.gif" src\x0c="opera.gif" src="others.gif" src="lynx.gif"/>EOF

Page 8: HTML Binary Hacks & GIF89a Ployglot

http://wafful.org

Demo

Page 9: HTML Binary Hacks & GIF89a Ployglot

9

Page 10: HTML Binary Hacks & GIF89a Ployglot

10

It can detect “Konqueror”, “Safari2” !

Page 11: HTML Binary Hacks & GIF89a Ployglot

11

No JavaScript&

No CSS hacks

Page 12: HTML Binary Hacks & GIF89a Ployglot

12

lynx

Page 13: HTML Binary Hacks & GIF89a Ployglot

13

w3m

Page 14: HTML Binary Hacks & GIF89a Ployglot

14

Mozilla/5.0 (PLAYSTATION 3; 1.00)

others.gif

Page 15: HTML Binary Hacks & GIF89a Ployglot

15

Page 16: HTML Binary Hacks & GIF89a Ployglot

16

1.0TheEnd

Page 17: HTML Binary Hacks & GIF89a Ployglot

17

2.0GIF89aPolyglot

Page 18: HTML Binary Hacks & GIF89a Ployglot

18

Animation GIF image

Yappoc.gif

Page 19: HTML Binary Hacks & GIF89a Ployglot

19

どう見てもYappo です

本当にありがとうございました(ry

Page 20: HTML Binary Hacks & GIF89a Ployglot

20

Polyglot DEMO

HTML/CSS & JS & Perl & GIF89a

Page 21: HTML Binary Hacks & GIF89a Ployglot

21

JavaScript in GIFJavaScript in GIF

GIF89a(q/*....../);sub GIF89a{print "Hello Perl!"}

__END__#*/=1);function GIF89a(){alert("Hello JavaScrpt!")}

/*<body style=visibility:hidden>

<div style=position:relative;visibility:visible>

<h1>Hello HTML!</h1><!--

................................................

................................................

................................................

................................................

--><img src=?>

<script src=# language=JavaScript></script></div>

*/// ;

Page 22: HTML Binary Hacks & GIF89a Ployglot

22

HTML/CSS in GIFHTML/CSS in GIF

GIF89a(q/*....../);sub GIF89a{print "Hello Perl!"}

__END__#*/=1);function GIF89a(){alert("Hello JavaScrpt!")}

/*<body style=visibility:hidden>

<div style=position:relative;visibility:visible>

<h1>Hello HTML!</h1><!--

................................................

................................................

................................................

................................................

--><img src=?>

<script src=# language=JavaScript></script></div>

*/// ;

Page 23: HTML Binary Hacks & GIF89a Ployglot

23

Perl in GIFPerl in GIF

GIF89a(q/*....../);sub GIF89a{print "Hello Perl!"}

__END__#*/=1);function GIF89a(){alert("Hello JavaScrpt!")}

/*<body style=visibility:hidden>

<div style=position:relative;visibility:visible>

<h1>Hello HTML!</h1><!--

................................................

................................................

................................................

................................................

--><img src=?>

<script src=# language=JavaScript></script></div>

*/// ;

Page 24: HTML Binary Hacks & GIF89a Ployglot

24

Demo

Page 25: HTML Binary Hacks & GIF89a Ployglot

25

Page 26: HTML Binary Hacks & GIF89a Ployglot

26

Page 27: HTML Binary Hacks & GIF89a Ployglot

27

Thank you