Открываем файл. Проматываем всю шелуху и находим единственное информативное, что есть в файле: зашифрованное сообщение. Причём дана вообще вся необходимая для расшифровки информация: название использованного алгоритма (chacha20), ключ шифрования, значение инициализационного вектора и соли.
Алгоритм поддерживается стандартной поставкой openssl. Можно вызвать команду openssl
с нужными параметрами и передать ей зашифрованные данные. Выясним с помощью документации, что дешифровка делается так: openssl enc -d
. Как называются и передаются остальные параметры, читаем в справке: openssl enc -help
. Командой openssl enc -list
узнаём, какой опцией задать нужный шифр. Учитываем также, что во всех случаях бинарные данные закодированы в base64. Подавать шифртекст на вход команде следует в декодированном виде, а параметры K
, S
и iv
следует преобразовать в шестнадцатеричный вид.
Сформируем команду:
$ echo /BfXeiwcpGNvCioouSXEcyCbswq+qWK9cXPmTTHpw9/PVqJC2G+ZZqFz1WlbhoMXfNY23g== | base64 -d | \
openssl enc -d -chacha20 \
-K $(echo SXfrl6vUC1Vn35Fegh9onjXwWj9zrpA/SlB9zjTsYZM= | base64 -d | xxd -p -c99) \
-S $(echo AMrggUL8qFJOWwqKyn3fxQ== | base64 -d | xxd -p -c99) \
-iv $(echo C4COMuSB8riCMPU2d/w/eQ== | base64 -d | xxd -p -c99)
ugra_seal_it_file_it_batch_it_mark_it_5868aa5acdd001
Флаг: ugra_seal_it_file_it_batch_it_mark_it_5868aa5acdd001