Skip to main content

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}