Teaser
Challenge
- Solve the riddles and get a solution fragment from each.
- Combine all the fragments in the right manner.
- Decode the result to get the final solution string.
- Sign-Up on Hacking-Lab, if you donβt have an account yet.
- Submit your solution in Hacking-Lab HERE.
- Wait for April 4, when HackyEaster 2017 starts!
Solutions
Riddle 1
MBD2A !ysaep ,ysaE
Reverse: Easy, peasy! A2DBM
Riddle 2
UGllY2Ugb2YgY2FrZSEgWlhHSUQ=
b64 decode: Piece of cake! ZXGID
Riddle 3
One for free here: 404 - not found!
invisible text on webpage: One for free here: 404 - not found! XIZLS
Riddle 4
1
2
3
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}
k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(
new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('0(\'1\');',2,2,'alert|VYGY6'.split('|'),0,{}))
run the javascript: VYGY6
Riddle 5
1
2
3
4
5
3a3ea00cfc35332cedf6e5e9a32e94da
9d5ed678fe57bcca610140957afab571
f09564c9ca56850d4cd6b3319e541aee
5dbc98dcc983a70728bd082d1a47546e
7fc56270e7a70fa81a5935b72eacbe29
md5: EBQSA
Riddle 6
1
--- -. . / -- --- .-. . / .... . .-. . ---... / .--- .- --- -- -.--
morse code: ONEMOREHERE: JAOMY
Riddle 7
Hwldp wx, Euxwh! QYAVL
ROT23: Etiam tu, Brute! NVXSI
Riddle 8
1
84 97 107 101 32 116 104 105 115 58 32 71 89 53 84 70
ascii: Take this: GY5TF
Riddle 9
Just a bit: /2mi4AMj
bit.ly: 5DFME
Riddle 10
No Comment
HTML comment: ` `
Riddle 11
1
2
3
π»π½π»π»π»π»π½π½π»π½π»π»π½π½π½π½π»π½π»π»π½π½π½π»π»π½π»π»π»π½π½π½π»π½π»π½π»π»π½π»π»π½π»π»π»π»π»π½
π»π½π»π½π»π½π»π»π»π½π»π½π»π»π½π½π»π»π½π»π»π»π»π½π»π»π½π»π»π»π»π»π»π½π»π»π½π½π½π»π»π»π½π½π»π½π»π½π»
π½π»π½π½π»π»π»π»π½π»π»π»π½π½π½π»π½π»π»π½π»π½π½
Binary: CONGRATS! N5XGK
Riddle 12
1
2
697c611778601371647d12177e7d060572
3133333731333337313333373133333731
xor the strings together:
1
2
3
4
5
6
7
8
9
10
11
a="697c611778601371647d12177e7d060572"
b="3133333731333337313333373133333731"
out=''
for i in range(0,len(a),2):
c = int(a[i:i+2],16)
d = int(b[i:i+2],16)
out += chr(c^d)
print out
xor: XOR IS FUN! ON52C
Riddle 13
URER LBH TB: MJX4E
ROT13: HERE YOU GO: ZWK4R
Riddle 14
1
2
3
4
5
6
7
8
9
10
11
12
13
89504E470D0A1A0A0000000D494844520000001D0000000708020000007BBCD1A5000000017352474200AECE1CE90
000000467414D410000B18F0BFC6105000000097048597300000EC300000EC301C76FA8640000001874455874536F
667477617265007061696E742E6E657420342E302E36FC8C63DF000001AA4944415428534D513DC8416118BD7E4A1
9180C0665A0582C8C7E22DF20C5480A130629060CF29792C16CB06293C82283C2F0C562540693C94F297F2983FB9D
EBF9BEDB77A673CE7DEE799FF3BE0CFB81C160904824C4098542C1E17098CDE672B90C399D4E9D4EA740208846A39
BCD2693C9300CF3F5079A29168B56ABD5E572B5DBEDDF5C954A85B9D3E944D2EBF5D66AB5DBEDF67EBF5BADD6EBF5
1A8D4676BB1D9F7ABD9EDFEF877FBFDFE3F1782E97BB5EAFF0B1473A9D063F1C0E1A8D86CB1D8FC7D8CBE3F1341A0
DC8C964A2502840FE83CF050987C3642693C96AB54A1C558810B8DC4824321C0E178B85CD66836C369BD80244A7D3
A194DBED7E3C1E8893CBE5E804743A1DEE57964DA552F57A1D64B7DB994C2632095CAE4C260B8542C160502A95AED
7EBC160100804E05F2E97E3F1882054E6F7DDEFF770CEE73378369BA5DCE7F3899B04E1C174BBDD582CF6FD01162F
954AD84EA9542E974B9A108BC5FF7301AD564B2F91CFE729174033BC1BF17EBFCFF87CBEF97C4E7ABBDDEAF57A90D
96C66341A3FA519FE5AD56A35A44824C2D99F71B652A9F0B9ABD5CA62B1604028142612891FA2F7838B729D41E800
00000049454E44AE426082
turned out to be hex representation of png image, convert back:
1
2
3
4
5
6
import binascii
ct = '89504E470D0A1A0A0000000D494844520000001D0000000708020000007BBCD1A5000000017352474200AECE1CE90000000467414D410000B18F0BFC6105000000097048597300000EC300000EC301C76FA8640000001874455874536F667477617265007061696E742E6E657420342E302E36FC8C63DF000001AA4944415428534D513DC8416118BD7E4A19180C0665A0582C8C7E22DF20C5480A130629060CF29792C16CB06293C82283C2F0C562540693C94F297F2983FB9DEBF9BEDB77A673CE7DEE799FF3BE0CFB81C160904824C4098542C1E17098CDE672B90C399D4E9D4EA740208846A39BCD2693C9300CF3F5079A29168B56ABD5E572B5DBEDDF5C954A85B9D3E944D2EBF5D66AB5DBEDF67EBF5BADD6EBF51A8D4676BB1D9F7ABD9EDFEF877FBFDFE3F1782E97BB5EAFF0B1473A9D063F1C0E1A8D86CB1D8FC7D8CBE3F1341A0DC8C964A2502840FE83CF050987C3642693C96AB54A1C558810B8DC4824321C0E178B85CD66836C369BD80244A7D3A194DBED7E3C1E8893CBE5E804743A1DEE57964DA552F57A1D64B7DB994C2632095CAE4C260B8542C160502A95AED7EBC160100804E05F2E97E3F1882054E6F7DDEFF770CEE73378369BA5DCE7F3899B04E1C174BBDD582CF6FD01162F954AD84EA9542E974B9A108BC5FF7301AD564B2F91CFE729174033BC1BF17EBFCFF87CBEF97C4E7ABBDDEAF57A90D96C66341A3FA519FE5AD56A35A44824C2D99F71B652A9F0B9ABD5CA62B1604028142612891FA2F7838B729D41E80000000049454E44AE426082'
with open('teaser.png', 'w+') as fout:
fout.write(binascii.unhexlify(ct))
PNG image: AGBTC
Riddle 16
1
2
3
FRIDAY THE THIRTEENTH, 4:00 PM
/([FOR]*)([ID]{2})([^N]*)(.)(.*)/g
$2E$44
regex: IDEN4
Riddle 16
<~<+oue+DGm>FD,5.CghC,+E)./+Ws0B9h&:~>
Base85 decode: DFMFZ
Final Solution
We suspect the solution fragments are part of a base32 encoded string, so we try different possible permutations of the fragments which yield valid outputs:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import itertools
import base64
import string
def extend_solution(partialsolution, mychunks):
''' try adding different permutations of 4 pieces to current solution, recurse til solution found'''
for i in itertools.permutations(mychunks, 4):
t = partialsolution + ''.join(i)
padded = t + '=' * (-len(t) % 8)
oldchunks = mychunks[:]
try:
d = base64.b32decode(padded)
valid = True
for c in d:
#if c not in string.printable:
if not (c.isalnum() or c == ' '):
valid = False
break
if valid:
if len(t) >= 80:
print "possible solution: " + d + " (" + t + ")"
#recursion
for x in i:
mychunks.remove(x)
extend_solution(partialsolution+''.join(i), mychunks)
except Exception as e:
print e
exit()
mychunks = oldchunks[:]
chunks= ['A2DBM','ZXGID','XIZLS','VYGY6','EBQSA','JAOMY','NVXSI','GY5TF',
'5DFME','A43JN','N5XGK','ON52C','ZWK4R','AGBTC','IDEN4','DFMFZ']
print "solving.."
extend_solution('',chunks)
this outputs various possible solutions:
1
2
3
4
5
6
7
8
9
10
11
solving..
possible solution: a tea3s not haeply s1terone do3er 0f sikky earlve (EBQSA5DFMEZXGIDON52CA2DBMVYGY6JAOMYXIZLSN5XGKIDEN4ZWK4RAGBTCA43JNNVXSIDFMFZGY5TF)
possible solution: a tea3s not haeply s0lveone do3er 0f sikky easter (EBQSA5DFMEZXGIDON52CA2DBMVYGY6JAOMYGY5TFN5XGKIDEN4ZWK4RAGBTCA43JNNVXSIDFMFZXIZLS)
possible solution: a tea3s not hacky easterone do3er 0f simply s0lve (EBQSA5DFMEZXGIDON52CA2DBMNVXSIDFMFZXIZLSN5XGKIDEN4ZWK4RAGBTCA43JNVYGY6JAOMYGY5TF)
possible solution: a tea3s not hacky earlveone do3er 0f simply s1ter (EBQSA5DFMEZXGIDON52CA2DBMNVXSIDFMFZGY5TFN5XGKIDEN4ZWK4RAGBTCA43JNVYGY6JAOMYXIZLS)
[..]
possible solution: one do3s not simply s1ter a tea3er 0f hacky earlve (N5XGKIDEN4ZXGIDON52CA43JNVYGY6JAOMYXIZLSEBQSA5DFMEZWK4RAGBTCA2DBMNVXSIDFMFZGY5TF)
possible solution: one do3s not simply s0lve a tea3er 0f hacky easter (N5XGKIDEN4ZXGIDON52CA43JNVYGY6JAOMYGY5TFEBQSA5DFMEZWK4RAGBTCA2DBMNVXSIDFMFZXIZLS)
possible solution: one do3s not sikky easter a tea3er 0f haeply s0lve (N5XGKIDEN4ZXGIDON52CA43JNNVXSIDFMFZXIZLSEBQSA5DFMEZWK4RAGBTCA2DBMVYGY6JAOMYGY5TF)
[..]
possible solution: one do3er 0f sikky earlve a tea3s not haeply s1ter (N5XGKIDEN4ZWK4RAGBTCA43JNNVXSIDFMFZGY5TFEBQSA5DFMEZXGIDON52CA2DBMVYGY6JAOMYXIZLS)
and best one and our solution is:
1
one do3s not simply s0lve a tea3er 0f hacky easter (N5XGKIDEN4ZXGIDON52CA43JNVYGY6JAOMYGY5TFEBQSA5DFMEZWK4RAGBTCA2DBMNVXSIDFMFZXIZLS)
Flag
one do3s not simply s0lve a tea3er 0f hacky easter