Information#
Version#
Date | By | Version | Comment |
---|---|---|---|
03/05/2016 | noraj | 1.0 | Creation |
Name#
Oups it's all mixed
Category#
Cryptography
Wording#
Decipher the following flag:
eGqaelr557dK4BbK47dS17dK68cu2PVPdydK2TtR5lKC
Data(s)#
+aAzZbByYcCxXdDwWeEvV9876543210fFuUgGtThHsSiIrRjJqQkKpPlLoOmMnN/
Equipment(s)#
A computer with an OS (preferably UNIX)
Hint(s)#
The name title is a hint.
Help#
Base64
Difficulty#
Easy / Medium
Solution#
Methodology#
- Identify that is a base64 string
- Decode the base64 string and observe only garbage
- Look at the provided data and analyse it
- Identify the data as a base64 alphabet (64 characters = 26 lowercase letters + 26 uppercase letters + 10 number +
+
+/
) - Realize that the alphabet is non standard but a mixed alphabet
- Write a script that will translate one alphabet to the other and pick up the output standard base64 string and then decode it
Some scrip examples below.
Python 2#
#!/usr/bin/python2
# made with python 2.7.9
import base64
import sys
import string
base64_mixed_alphabet = '+aAzZbByYcCxXdDwWeEvV9876543210fFuUgGtThHsSiIrRjJqQkKpPlLoOmMnN/'
base64_standard_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
s = 'eGqaelr557dK4BbK47dS17dK68cu2PVPdydK2TtR5lKC'
s_unmixed = s.translate(string.maketrans(base64_mixed_alphabet, base64_standard_alphabet))
s_unb64 = base64.urlsafe_b64decode(s_unmixed)
Python 3#
#!/usr/bin/python3
# made with python 3.4.1
import base64
base64_mixed_alphabet = '+aAzZbByYcCxXdDwWeEvV9876543210fFuUgGtThHsSiIrRjJqQkKpPlLoOmMnN/'
base64_standard_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
s = 'eGqaelr557dK4BbK47dS17dK68cu2PVPdydK2TtR5lKC'
s_unmixed = s.translate(str.maketrans(base64_mixed_alphabet, base64_standard_alphabet))
s_unb64 = base64.urlsafe_b64decode(s_unmixed.encode('utf-8'))
s_unb64 = s_unb64.decode('utf-8') # byte to string
Bash#
# made with bash 4.2.47
echo "eGqaelr557dK4BbK47dS17dK68cu2PVPdydK2TtR5lKC" | tr '+aAzZbByYcCxXdDwWeEvV9876543210fFuUgGtThHsSiIrRjJqQkKpPlLoOmMnN/' 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' | base64 -di && echo "\n"
Flag#
FLAG{Yesthatisjustabase64string}