Codeby Games Забытый [Writeup]

M4x

One Level
20.05.2024
3
3
BIT
50
Без лишних предисловий перейдем к сути.

Шаг 1. Для удобства и упрощения работы преобразуем байтовую строку в hex-нотацию. Это можно сделать следующим образом:

Python:
encrypted_flag = b'+\x7ft1*iK\x1c[Io\x16\x1a\x00o\x1aYS\x03+\x10\x00B\t'.hex()
print(encrypted_flag)

В результате мы получим строку, с которой будем работать в дальнейшем:

2b7f74312a694b1c5b496f161a006f1a5953032b10004209

Шаг 2. Далее необходимо определить XOR-ключ. В данном случае ключ легко вычисляется, так как мы знаем формат флага: "CODEBY{". Переведем строку "CODEBY{" в hex-нотацию:

Python:
partial_flag = b'CODEBY{'.hex()
print(partial_flag) 
# Вывод: 434f444542597b

Для определения ключа мы будем использовать замечательный инструмент . Вставляем зашифрованный флаг в поле Input. Сначала применяем рецепт "From Hex", а затем добавляем рецепт "XOR", где в поле "Key" вводим строку, полученную на шаге 2. Для тех, кто не совсем понимает, что происходит, поясню: в данном случае мы выполняем операцию XOR между строкой CODEBY{ и зашифрованным флагом, чтобы попытаться определить ключ шифрования.

1.webp


XOR-ключ становится очевидным: это строка h00t, которая многократно повторяется. Переводим ключ в hex-нотацию:

Python:
xor_key = b'h00t'.hex()
print(xor_key) 
# Вывод: 68303074

Шаг 3. Снова воспользуемся Кибершефом. Все то же самое: вставляем зашифрованный флаг в поле Input, применяем рецепт "From Hex", а затем добавляем рецепт "XOR", где в поле "Key" вводим XOR-ключ. После выполнения этих шагов мы сможем увидеть расшифрованный флаг.

2.webp


Рекомендую решить задачку самостоятельно, если вас интересует категория «crypto» и вы стремитесь развиваться в этом направлении.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!