|
| 1 | +<head> |
| 2 | +<link rel=stylesheet type=text/css href=http://nicolasgallagher.com/pure-css-speech-bubbles/demo/default.css > |
| 3 | +<style> |
| 4 | +p {text-align: center} |
| 5 | +</style> |
| 6 | +<script> |
| 7 | +window.onmessage = function(e) { |
| 8 | + if (!e) e = this.event; |
| 9 | + var k = e.data; |
| 10 | + document.getElementById('key').innerHTML = k; |
| 11 | +} |
| 12 | + |
| 13 | +function crack(f) { |
| 14 | + document.getElementById('f').contentWindow.postMessage(f.elements['tryme'].value, '*'); |
| 15 | + f.elements['tryme'].value = ''; |
| 16 | + return false; |
| 17 | +} |
| 18 | + |
| 19 | +</script> |
| 20 | +</head> |
| 21 | +<body> |
| 22 | +<div style="width: 700px; margin: 0 auto"> |
| 23 | +<h1>Keys to a kingdom!</h1> |
| 24 | +<p>A quick fun sidechannel, posssibly crypto challenge by <a href="http://blog.kotowicz.net">Krzysztof Kotowicz</a></p> |
| 25 | +<h2>Rules</h2> |
| 26 | +<ol> |
| 27 | +<li>Remote kingdom posesses a secret. Every 2 seconds its king gives you a new key to crack |
| 28 | +<li>If you can crack the key, enter the solution in the input field below and press the magical ENTER key |
| 29 | +<li>Beware! Solutions expire, so you have only about 100 seconds to crack any key on average! |
| 30 | +<li>Once in a while, you'll be getting expired solutions as a hint. |
| 31 | +<li><strong>Make the kingdom display you the generated secret</strong> |
| 32 | +<li>Modern browsers only or respect the iframe sandbox rules (i.e. no direct access to remote.html DOM) |
| 33 | +<li>You can copy the challenge to automate tasks, but no tampering with kingdom.html |
| 34 | +<li>There's more than one way to skin a cat, so Think OUTB. |
| 35 | +</ol> |
| 36 | +<div style="text-align: center"> |
| 37 | +<h1>Newest key to crack:</h1> |
| 38 | +<p id=key> </p> |
| 39 | +</div> |
| 40 | +<img src="knight.png" style="float: right;"> |
| 41 | + |
| 42 | +<form style="margin: 0 200px; text-align: right" class="triangle-border right" onsubmit="return crack(this)" action=#> |
| 43 | + |
| 44 | +<input id=tryme placeholder="Your solution is..." size=32 maxlength=32> |
| 45 | +</form> |
| 46 | +<iframe id=f sandbox=allow-scripts seamless style="width:700px; border: none; height: 400px;"></iframe> |
| 47 | +<script> |
| 48 | + var f = document.getElementById('f'); |
| 49 | + f.onload = function() { |
| 50 | + window.frames[0].postMessage(null, '*'); |
| 51 | + } |
| 52 | + f.src = 'kingdom.html'; |
| 53 | + |
| 54 | +</script> |
| 55 | +<p> |
| 56 | +<small> |
| 57 | +Used <a href="http://www.iconspedia.com/pack/desktop-boss-2-icons-3659/">http://www.iconspedia.com/pack/desktop-boss-2-icons-3659/</a>, |
| 58 | + <a href=http://icones.pro/en/knight-png-image.html>http://icones.pro/en/knight-png-image.html</a>, |
| 59 | + <a href="http://nicolasgallagher.com/pure-css-speech-bubbles/demo/">http://nicolasgallagher.com/pure-css-speech-bubbles/demo/</a> and <a href="http://pajhome.org.uk/crypt/md5">http://pajhome.org.uk/crypt/md5</a>. |
| 60 | + |
| 61 | +<h1>Hall of fame</h1> |
| 62 | +<p>awaits you! |
| 63 | +</div> |
| 64 | +</body> |
0 commit comments