Условие:
Вы обнаружили в ящике стола инсайдера жесткий диск, содержащий несколько зашифрованных контейнеров и текстовый файл «пароль.txt».
В файле содержится строка:
RG1zggw0OrqApme9qb+GEPI3Iyx9nzEVBLokN4wONKpnBZ1sjUGl13Ork1ByP4l1
Известно, что сообщение зашифровано при помощи AES-CBC, а 16-ти символьный секретный ключ как-то связан с любимым числом инсайдера. Нам нужно расшифровать строку.
Формат флага: CTF{flag}
Флаг:
Подсказка : Секретный ключ часть MD5 хэша любимого числа. IV может быть частью зашифрованного сообщения.
Решение:
Для решения задачи по расшифровке сообщения, зашифрованного с использованием AES-CBC, нам нужно выполнить несколько шагов. Давайте разберем их по порядку.
Шаг 1: Извлечение данных
1. Зашифрованное сообщение:
- Мы имеем строку:
RG1zggw0OrqApme9qb+GEPI3Iyx9nzEVBLokN4wONKpnBZ1sjUGl13Ork1ByP4l1
- Это сообщение закодировано в Base64.
2. Пароль:
- В файле «пароль.txt» содержится строка, которая, вероятно, является ключом для расшифровки.
Шаг 2: Декодирование Base64
Сначала декодируем зашифрованное сообщение из Base64:
1. : - Секретный ключ связан с любимым числом инсайдера. Мы можем предположить, что это MD5-хэш любимого числа. - Например, если любимое число инсайдера — 42, то мы можем получить MD5-хэш этого числа и взять первые 16 символов. 2. : - IV (инициализационный вектор) в AES-CBC обычно равен размеру блока (16 байт). Мы можем взять первые 16 байт декодированного сообщения как IV. Теперь, когда у нас есть ключ и IV, мы можем использовать библиотеку для расшифровки сообщения. После расшифровки мы должны получить строку, которая будет в формате . Теперь вы можете подставить реальное любимое число инсайдера и выполнить код, чтобы получить флаг. Не забудьте проверить, что вы используете правильные библиотеки и версии Python.
