HTML Binary Hacks & GIF89a Ployglot

8,341 views
8,093 views

Published on

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

1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
8,341
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
38
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

HTML Binary Hacks & GIF89a Ployglot

  1. 1. HTML Binary Hacks - GIF89a Polyglot - Cybozu Labs, Inc. TAKESAKO <takesako@shibuya.pm.prg>
  2. 2. I’ll show you, HTML 2.0 hacks.
  3. 3. 1.0 HTML Browser Detection
  4. 4. HTML 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)
  5. 5. 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
  6. 6.
  7. 7. print<<EOF; <img /src x00 =&quot;ie.gif&quot; /''src x00 =&quot;firefox1_5.gif&quot; /''src=&quot;firefox2_0.gif&quot; /&quot;&quot;src=&quot;gecko_others.gif&quot; &quot;s x00 rc=&quot;safari2.gif&quot; &quot;src=&quot;safari3.gif&quot; &quot;&quot;src=&quot;konqueror.gif&quot; src x00 =&quot;w3m.gif&quot; src x0c =&quot;opera.gif&quot; src=&quot;others.gif&quot; src=&quot;lynx.gif&quot; /> EOF
  8. 8. http://wafful.org Demo
  9. 10. It can detect “Konqueror”, “Safari2” !
  10. 11. No JavaScript & No CSS hacks
  11. 12. lynx
  12. 13. w3m
  13. 14. Mozilla/5.0 (PLAYSTATION 3; 1.00)  others.gif
  14. 15.
  15. 16. 1.0 The End
  16. 17. 2.0 GIF89a Polyglot
  17. 18. Animation GIF image Yappoc.gif
  18. 19. どう見ても Yappo です 本当にありがとう ございました(ry
  19. 20. Polyglot DEMO HTML/CSS & JS & Perl & GIF89a
  20. 21. JavaScript in GIF GIF89a( q /*....../);sub GIF89a{print &quot;Hello Perl!&quot;} __END__#*/ =1 );function GIF89a(){alert(&quot;Hello JavaScrpt!&quot;)} /*<body style=visibility:hidden> <div style=position:relative;visibility:visible> <h1>Hello HTML!</h1><!-- ................................................ ................................................ ................................................ ................................................ --><img src=?> <script src=# language=JavaScript></script></div> */ // ;
  21. 22. HTML/CSS in GIF GIF89a(q/*....../);sub GIF89a{print &quot;Hello Perl!&quot;} __END__#*/=1);function GIF89a(){alert(&quot;Hello JavaScrpt!&quot;)} /* <body style=visibility:hidden> <div style=position:relative;visibility:visible> <h1>Hello HTML!</h1> <!-- ................................................ ................................................ ................................................ ................................................ --> <img src=?> <script src=# language=JavaScript></script> </div> */// ;
  22. 23. Perl in GIF GIF89a(q /*....../ );sub GIF89a{print &quot;Hello Perl!&quot;} __END__ #*/=1);function GIF89a(){alert(&quot;Hello JavaScrpt!&quot;)} /*<body style=visibility:hidden> <div style=position:relative;visibility:visible> <h1>Hello HTML!</h1><!-- ................................................ ................................................ ................................................ ................................................ --><img src=?> <script src=# language=JavaScript></script></div> */// ;
  23. 24. Demo
  24. 27. Thank you

×