061
- Description: hint: Too many bases.
🔎 Solution​
The challenge provides the following Base64 string:
UEsDBC0AAgAIALySN1jMnd4u//////////8BABQALQEAEAA4BQAAAAAAAHgAAAAAAAAArVPJDcAg
DFvJ3n+58mih5G6KhGQBVi7HAAmMsyEWciAh/ieP877xnnfIeBmfimfW4cZf/2HdL4z7S3hZXlUn
a3Og5v+KW9XXzY/ePGW8sp6s7Ve1Dq+vbG9P6WDse+yH4vwMf7byez5HU192dT3kl89+pdvfzb8A
UEsBAh4DLQACAAgAvJI3WMyd3i54AAAAOAUAAAEAAAAAAAAAAQAAAIARAAAAAC1QSwYGLAAAAAAA
AAAeAy0AAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAALwAAAAAAAACrAAAAAAAAAFBLBgcAAAAA2gAA
AAAAAAABAAAAUEsFBgAAAAABAAEALwAAAKsAAAAAAA==
This string appears to be a Base64-encoded ZIP file:
UEsDB: Indicates the start of a ZIP file in Base64.//////: Contains the compressed data.UEsFBg: Marks the end of the ZIP file.
Decoding the Base64 and saving it as a ZIP file:
cat 061.txt | base64 -d > out.zip
Extracting the ZIP file produces a file named -. Viewing its contents reveals binary strings:
> cat ./-
0011001000110010001100000011000001110100001100100011001000110001001100100111010000110001001100000011000000110001001100100111010000110001001100010011000100110010001100000111010000110001001100000011000000110000001100010111010000110010001100100011001000110010011101000011001000110010001100000011001001110100001100100011000000110000001100010111010000110001001100000011000100110001001100100111010000110001001100100011000100110001011101000011000100110000001100010011000100110010011101000011001000110010001100000011000001110100001100010011001000110001001100000111010000110010001100100011001000110010011101000011000100110010001100100011000001110100001100010011000000110001001100010011001001110100001100010011000000110000001100100011001001110100001100010011001000110001001100000111010000110001001100000011000000110001001100010111010000110001001100000011000100110001001100100111010000110010001100010011000100110001011101000011000100110001001100000011001000110000011101000011000100110010001100100011000101110100001100100011000100110001001100010111010000110010001100100011000100110000011101000011000100110010001100100011000001110100001100100011000100110001001100100111010000110001001100000011000100110001001100100111010000110001001100100011000100110001011101000011001000110000001100000011000101110100001100010011000100110001001100100011001001110100
Decoding this binary string yields:
2200t2212t10012t11120t10001t2222t2202t2001t10112t1211t10112t2200t1210t2222t1220t10112t10022t1210t10011t10112t2111t11020t1221t2111t2210t1220t2112t10112t1211t2001t11122t
The resulting string consists of characters '0', '1', '2', and the delimiter 't'. The 't' likely serves as a separator, and the string is encoded in base-3 (ternary).
A short script can decode this string:
s = "2200t2212t10012t11120t10001t2222t2202t2001t10112t1211t10112t2200t1210t2222t1220t10112t10022t1210t10011t10112t2111t11020t1221t2111t2210t1220t2112t10112t1211t2001t11122t"
nums = s.strip('t').split('t')
flag = ''.join(chr(int(n, 3)) for n in nums)
print(flag)
Running the script reveals the flag:
> python decode.py
HMV{RPJ7_1_H0P3_Y0U_Cr4CK3D_17}
🚩Flag​
HMV{RPJ7_1_H0P3_Y0U_Cr4CK3D_17}