2 minutes
cherryNo.7
DownUnderCTF 2022 - Rage!
Rage! is a misc challenge that was part of the 2022 DownUnder CTF. The only info: A raging Real Wild Child! And the flag is the string you end up with after solving challenge (case insensitive).
Solution
In the last few seconds the music gets quieter and we can hear morse code. To verify this, we used audacity to “view” the file and can see the morse code that is overlayed on the music.
Then we used both, the visual signal and slowed down music, to get the message letter by letter.
.-. .. --. .. -. --. / .. --- / ..- . .. .-. -.. / .-.. .. -... .. -.. ---
RIGING IO UEIRD LIBIDO
------------------------------------------------------------------------------
RAGING TO WEIRN LUSIDO
.-. .- --. .. -. --. / - --- / .-- . .. .-. -. / .-.. ..- ... .. -.. ---
----------------------------------------------------------------------------
RAGING TO WEIRD LUCIDO
.-. .- --. .. -. --. / - --- / .-- . .. .-. -.. / .-.. ..- -.-. .. -.. ---
------------------------------------------------------------------------------
.-. .- --. .. -. --. / - --- / .-- . .. .-. -.. / .-.. ..- .-... .. -.. ---
RAGING TO WEIRD LU&IDO
-------------------------------------------------------------------------------
RAGING TO WEIRD LIBIDO
.-. .- --. .. -. --. / - --- / .-- . .. .-. -.. / .-.. .. -... .. -.. ---
-----------------------------------------------------------------------------
To decode the morse code we used a python script form an old project.
#!/usr/bin/env python3
MCODE = {
'A':'.-',
'B':'-...',
'C':'-.-.',
'D':'-..',
'E':'.',
'F':'..-.',
'G':'--.',
'H':'....',
'I':'..',
'J':'.---',
'K':'-.-',
'L':'.-..',
'M':'--',
'N':'-.',
'O':'---',
'P':'.--.',
'Q':'--.-',
'R':'.-.',
'S':'...',
'T':'-',
'U':'..-',
'V':'...-',
'W':'.--',
'X':'-..-',
'Y':'-.--',
'Z':'--..',
'1':'.----',
'2':'..---',
'3':'...--',
'4':'....-',
'5':'.....',
'6':'-....',
'7':'--...',
'8':'---..',
'9':'----.',
'0':'-----',
',':'--..--',
'.':'.-.-.-',
'?':'..--..',
'/':'-..-.',
'&':'.-...',
'-':'-....-',
'(':'-.--.',
')':'-.--.-',
' ':'/'
}
def encrypt(msg):
r = ''
for l in msg:
r += MCODE[l] + ' '
return r
def decrypt(msg):
r = ''
l = ''
for s in msg:
if (s != ' '):
l += s
else:
r += list(MCODE.keys())[list(MCODE.values()).index(l)]
l = ''
return r
while True:
msg = input()
if msg == '' or msg[0] == ' ':
break
if msg[0] == '.' or msg[0] == '-':
if msg[-1] != ' ':
msg += ' '
print(decrypt(msg))
print("---"+"-"*len(msg))
else:
a = encrypt(msg.upper())
print(a)
print("---"+"-"*len(a))
Flag
The flag is “RAGING TO WEIRD LIBIDO”.