GRSU Summer Practice Misc райтапы
Задания этой категории должны были называться Stegano = стеганография, но к сожалению на сайте такой категории не было.
Птичка Птичка!
Видим картинку и сразу закидываем ее в гугл поиск:
Мы узнали название шифра, теперь заходим на любой сайт, вводим последовательность и получаем флаг.
Флаг: grodno{birds_on_a_wire}
Странный файл
У меня есть очень важный файл, но с ним что-то стало. Помогите восстановить его.
Формат флага: grodno{}
Открываем файл и понимаем, что это очень длинная бэйс строка.
Закидываем ее на кибер шеф и он автоматически определяет, что эта строка - это представление файла:
Флаг: grodno{an0th3r_b@s3_t4sk}
Хорошая Песня
Согласитесь, хорошая песня. Осталось найти флаг
Формат флага: grodno{}
К задаче прикреплен mp3 файл. Задачу можно решить просто открыв любую ИИ и закинув туда файл с просьбой достать флаг, но я расскажу исходный вектор.
В задачах на стеганографию все сводится к перебору векторов атаки от самого простого, к сложному.
Для каждого типа файлов они разные, но в среднем их 6-8 на каждый тип файла.
Самое простое что можно сделать со звуком, это спрятать флаг в спектрограмму.
Для просмотра спектрограммы можно использовать много утилит, но самая удобная для меня - это Sonic Visualiser
Флаг: grodno{j0hnny_0n1_na_d3r3v1ah}
Но если лень учить мат часть, то всегда можно вставить это в любимый чатгпт)
PiH
Этот таск тоже максимально простой. Когда мы работаем с изображениями, то очень выручает сайт https://www.aperisolve.com/
Он оркестрирует основные стеганографические утилиты для работы с фото, гиф и тд.
Видим, что утилита StegHide нашла какойто файл "pih_flag.txt"
Скачиваем, открываем и получаем флаг.
Флаг: grodno{PiH_Hru_hRu_hrU}
Страх и Ужас
Райтап будет позже, так как задача будет представлена на международном CTF
Крутой Скейт
Потрясающая задача, которая показала мне, что такое профдеформация в CTF
Задача взята с одного кубанского соревнования, которое мы выиграли 2 месяца назад.
Я просидел за ней около 8 часов, разбирал каждый кадр и ничего не смог найти.
Потом решил посмотреть само видео и понял, что вся задача сводилась к азбуке морзе в прыжках и перекатах.
Как оказалось первокурсники нашей кафедры решают эту задачу в разы проще, чем опытные CTFеры. Изначально эту задачу смогли решить только 3 комнады, у нас 20.
Прыжки = "-"
Перекаты = "."
Флаг: grodno{GROB}
АХАХАХАХАХАХАХАХАХАХАХАХАХАХАХ
⠁⠀⠀⠈⠀⠀⠀⠁⠀⠀⠈⠀⠀⠀⠁⠀⠀⠈⠀⠀⠀⠁⠀⠀⠈⠀⠀⠀⠁⠀⠀⠈⠀⠀⠀⠁⠀⠀⠈⠀⠀⠀⠁⠀⠀⠈⠀⠀⠀⠁
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠲⠲⠲⠲⠲⠲⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣌⣷⡤⠀⠀⠀⠀⠀⠀⣱⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠅⠀⠘⡆⠀⠀⠀⠀⡔⠏⠛⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⠀⠀⠀⠰⡀⠀⠀⢰⠃⠀⠀⠈⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡴⢠⠶⣀⠀⠀⠀⠀⠀⠂⠀⠀⠀⡠⢎⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠂⠀⠀⠀⠀⠀⠀⠀⠐⠈⠀⠀⠀⠀⠀⠀⡰⢱⠉⣾⠘⢄⠀⠀⠀⠀⠀⠀⠀⢜⢧⡁⢫⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢃⢇⢰⢽⡇⢨⠀⠀⠀⠀⠀⠀⠸⢸⣽⠦⣤⢇⠀⠀⠀⠀⠀⠀⠀⠀⠐⠈⠀⠀⠀⠁⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠘⠈⠀⠉⠘⢔⡄⠀⠀⠀⠀⠀⡑⡨⠋⢀⠟⠎⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢋⢀⠀⢠⠲⣠⠁⠆⠀⠀⠀⠀⠀⢊⠃⢀⠺⠈⠀⢨⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⢰⠈⠁⠀⠀⠀⠀⠃⠊⡂⠀⠀⠀⠀⠍⢠⠃⠈⠀⣠⠊⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⡴⠔⠋⠂⠀⡜⠀⠀⠀⠀⢠⠀⠈⠀⡠⡰⠁⠆⠈⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠎⠀⠀⠁⠀⠀⢠⠎⠀⠀⠀⠀⠀⠨⣄⢄⠀⠀⠀⠀⠀⠀⢐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠄⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⢘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢐⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⢐⠠⠈⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡂⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡂⠄⠡⠁⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⡴⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⠨⠠⠁⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⡈⢇⠄⠏⠁⠀⠀⠀⢰⠀⠀⠀⠀⠀⠀⠀⠀⠰⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡐⠀⠀⠀⠀⠀⠀⠀⢀⠎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡂⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠁⠀⠀⠀⠀⠀⠀⠸⠀⠀⠀⠀⠀⠀⠀⢀⠎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠄⠀⠀⠀⠀⠀⠀⠀⠰⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⡆⡰⣽⣉⢀⡀⢀⠀⠀⠀⠀⠀⡀⠐⠀⡔⠖⢅⠀⠀⠀⠀⠀⠀⠀⠀⢃⠀⠀⠀⠀⠀⠀⠀⠀
⡀⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⢰⠠⡋⣾⣿⣯⡘⠤⡠⠀⠠⠀⢠⡀⣦⣷⣾⡦⠫⡀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⡆⠈⢸⢼⣿⣿⣿⡧⢌⠙⠉⠋⠃⡡⣾⣿⣿⡇⡄⡆⠀⠀⠀⠀⠀⠀⠀⠀⢨⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠰⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⡄⠸⢼⣿⣿⣿⠡⢈⠱⢲⠒⠎⠠⣻⣿⣿⡇⡃⢘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠇⠀⠀⠀⠀⠀⠀
⠄⠀⠀⢠⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠊⢣⢺⣹⣿⣿⣿⠈⠠⠐⢨⠐⢈⠐⢼⣿⣿⣷⠀⠨⠀⠀⠀⠀⠀⠀⠀⠀⠀⢡⠀⠀⠀⠀⠀⠀
⠀⠀⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢨⠸⣼⣿⣿⡇⠠⠡⠈⡎⢐⠠⠈⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡀⠀⠀⠀⠀⠀
⠀⠀⢐⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠐⢽⣿⣿⠇⠁⠌⠨⢂⠐⠠⠁⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢅⠀⠀⠀⠀⠀
⠂⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡨⠸⣿⣿⠅⠨⢈⢸⠀⠌⠄⠡⣿⣿⣿⡇⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡄⠀⠀⠀⠀
⠀⠀⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⡇⠀⣿⣿⠀⠡⠐⡄⢂⠡⠈⠄⣿⣿⡿⠀⢠⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⠀⠀⠀⠀
⠀⢠⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⢠⠸⣟⠀⠅⠂⡃⠄⠂⡁⢂⢻⣿⠇⡀⡎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡆⠀⠀⠀
⠁⠌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⢨⠈⣇⠂⡁⢂⠐⡈⠄⠂⠄⢽⡏⢠⢦⠂⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢂⠀⠀⠀
⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⠀⡣⠂⡐⠐⡐⠠⠈⠄⡁⡺⠂⡜⡇⠀⡰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀
⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⡆⡢⠁⠄⠡⠐⢈⠨⠐⡀⠎⢰⡑⡅⢰⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡆⠀⠀
⢔⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⡌⡎⠄⠡⢈⢐⢀⠂⡁⠄⣣⠗⠈⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢆⠀⠀
⡌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢑⢨⠠⠁⡂⠄⢂⠐⡀⠂⣇⠔⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⠀⠀
⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡂⡁⠄⠌⡀⠂⠄⢱⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡆⠀
⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢱⠀⡂⠡⠀⠅⢡⠆⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢡⠀
⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠪⡀⠀⠀⠀⢣⠐⠈⠄⣡⠃⠀⠀⡃⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢨⠀
⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢢⠐⡄⠀⠀⠀⠀⠑⠧⡜⠀⠀⠀⠀⠓⠎⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡆
⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣃⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡣
⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢢
⢱⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸
⡐⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸
Потрясающая, но вполне обычная и простая как оказалось задача. Думал, что она продержится дольше.
Файл задачи имеет немного нестандартный формат - .avif
Поэтому идем читать что в нем такого интересного.
Отчасти формат очень похож на png и даже есть утилита, которая может декодировать изображение avif в png
На самом изображении видны какие то помехи на белом фоне, после перевода в png. По этим помехам либо вы, либо ваша ИИшка могли с легкостью определить что есть изменения в перменной Y, которая отвечает за яркость.
Построим спектр яркостной плоскости:
import numpy as np
from PIL import Image
img = np.array(Image.open("decoded.png").convert("RGB"), dtype=np.float32)
y = 0.299 * img[:, :, 0] + 0.587 * img[:, :, 1] + 0.114 * img[:, :, 2]
spec = np.fft.fftshift(np.fft.fft2(y))
mag = np.log1p(np.abs(spec))
mag = (mag - mag.min()) / (mag.max() - mag.min())
Image.fromarray((mag * 255).astype("uint8")).save("fft.png")Открываем получившееся изображение и получаем фото флага:
Флаг: grodno{Gruzdn13_Gruzd1_NCF_4b0b4}
Кубаноид и Кубаноид Revenge
Данные задачи создавал не я, так что не могу полностью описать оригинальный способ решения. Насколько я знаю, все сводилось к поиску прогруженных чанков в мире с помощью специализированных утилит и сайтов
Девочка С Бесплотностью
Задача состоит из 4х минутного видео с геймплеем доты.
Было довольно много вопросов и претензий по поводу этой задачи в форме обратной связи.
Пропишу сразу, любая задача подразумевает, что ее сможет решить ЛЮБОЙ человек, независимо от любых факторов, кроме его способностей в CTF.
НЕ НУЖНО УМЕТЬ ИГРАТЬ В ДОТУ ЧТОБЫ ЕЕ РЕШИТЬ.
Теперь к самому решению. Идея для задачи появилась после решения задачи "Крутой Секйт" и суть решения точно такая же.
Персонаж Муэрта, которая представлена в задаче имеет возможность переключения своей 3 способности (иконка способности горит зеленым, когда она включена и не горит, когда выключена).
Внимательно посмотрев видео, можно заметить, что на моменте 3.18 я начинаю отбивать морзянку третей способностью. Выделив этот фрагмент и сопоставив с азбукой получаем флаг.
Флаг: grodno{1and3}