picoCTF 2023 | Repetitions WriteUp
Merhaba, bu yazımda picoCTF platformunda yer alan “Repetitions” isimli meydan okumanın çözümünü göstereceğim. Bize bir dosya verilmiş ve bu dosyanın içerisindeki bayrağı almamızı istiyor. enc_flag isimli dosyanın içeriği aşağıdaki gibidir.
1
2
3
4
5
VmpGU1EyRXlUWGxTYmxKVVYwZFNWbGxyV21GV1JteDBUbFpPYWxKdFVsaFpWVlUxWVZaS1ZWWnVh
RmRXZWtab1dWWmtSMk5yTlZWWApiVVpUVm10d1VWZFdVa2RpYlZaWFZtNVdVZ3BpU0VKeldWUkNk
MlZXVlhoWGJYQk9VbFJXU0ZkcVRuTldaM0JZVWpGS2VWWkdaSGRXCk1sWnpWV3hhVm1KRk5XOVVW
VkpEVGxaYVdFMVhSbHBWV0VKVVZGWmFWMDVHV2tkYVNHUlZDazFyY0ZkVWJGWlhZVlpLU0dWRlZs
aGkKYlRrelZERldUMkpzUWxWTlJYTkxDZz09Cg==
Base64 ile kodlanmış ve belirli aralıklarla yeni satıra geçmiş bir veriye benziyor. Satırları birleştirdikten ve çözdükten sonra tekrar bir base64 kodlaması ile karşılaşıyoruz. Bunu 6 kez tekrar ettikten sonra bayrağa ulaşıyoruz. Aşağıya bu işlemi otomatik yapan bir python kodu bırakıyorum.
1
2
3
4
5
6
7
8
9
10
from base64 import b64decode
with open("enc_flag", "r") as file:
enc_flag = file.read()
while "picoCTF" not in str(enc_flag):
enc_flag = str(enc_flag).replace('\n', '')
enc_flag = b64decode(enc_flag).decode()
print(enc_flag)
This post is licensed under CC BY 4.0 by the author.