Polyglot Inception = JPEG = CSS = JS = HTML

Gepostet vor 28 Tagen in #Tech #Coding #HTML #Javascript

Share: Twitter Facebook Mail

JS-Wizard Martin Kleppe hat ein JPG, ein Stylesheet, ein Javascript und ein HTML in dasselbe Textfile gebacken: Polyglot Inception4.

deepLevels of Inception

  1. Browser loads page as index.html
  2. HTML contains <script src="#"> tag
  3. Script writes <link href="#">
  4. Stylesheet renders background: url()

How Does it Work?

  • View the page source and watch the network panel to see what is going on.
  • The document starts with the HEX signature "FF D8 FF E1" that identifies the file as a JPEG.
  • The following two bytes define the EXIF header size. Here "0D 3D" leaves space for 3389 bytes.
  • Because the encoding was set to "ISO-8859-1", the first assignemnt ???? = {} is a valid JavaScript expression.
  • The equal sign is not a allowed in CSS selectors but it won't cause the interpretor to stop.
  • The rule inception * { background: url() } is valid CSS and JS at the same time.
  • To avoid errors in JavaScript, we need to hoist the variable "inception" and the function "url".
  • When using href="#", src="#" or url() it points to the same ressource.
  • Line and block comments make it possible to apply the HTML structure and load our script.
  • To render HTML on the first run, the "Content-Type" header must be "text/html".
  • The type will be ignored later, when we refer to it as a JS, CSS and JPEG.
  • Then we include the JPEG image data and close the block comment at the end of the file.

Stupid Hacks from Stupid Hackathon Sweden

Vor ein paar Tagen ging der Stupid Hackathon Schweden zu Ende, hier eine Liste aller dort realisierten Projekte. Spontan mein…

Cool Coding Sticker: I hate Programming I love Programming!

I can relate. Gibt's auf Redbubble für 3 Euro. (via Sara Soueidan)

MuscularAnimeGirl[NSFW].jpg = IndustrialMusic.mp3

Cool Bug featuring „a muscular girl“.jpg, anime style („slighly NSFW“ [„it's the only sample I had“ – sure]) and Industrial…

Good, Cheap, Fast – Pick two.

Hier auf Github. (via Felix)

PostScript-Malware manipulates Print-Jobs

Fefe hat gestern ein interessantes Sicherheits-Leck verlinkt mit dem lapidaren Satz: „Benutzt hier jemand Postscript-Drucker?“ This post is about manipulating…

Algorithm watching Wolf of Wallstreet

Tolles Computervision-Experiment von Støj: An algorithm watching a movie trailer: „A program removing everything but the objects it recognises when…

Miniature-Playground for Captcha-Solving AIs

„I'm not a Robot“ my ass. Mini World of Bits ('MiniWoB') is a benchmark for reinforcement learning agents who interact…

How To build a Marvin the Depressed Reddit Bot in Python

Die Grünen fordern ja eine Transparenzpflicht für Social Bots. Ich hoffe inständig, dass jemand einen angemessenen Marvin-Bot für die Grünen…

Neural Network Names from the Future

Nate Parrott hat ein Neural Network auf 7500 Vornamen trainiert und generiert nun neue Namen aus der Zukunft, inklusive „…

Mechanical Sand-RAM

Schöne Arbeit von Ralf Baecker, ein mechanischer RAM, der Binärdaten mit Sandkörnern schreibt und damit ein bisschen Voodoo ausrechnet: Random…