Адмирал Преподаватель
17 октября в рамках Московского Технологического Марафона прошел первый этап Кибертона - соревнования по информационной безопасности в формате task-based CTF. Нас попросили подготовить несколько заданий, разбор которых - в этой статье.
Условие: Недавно я наткнулся на какое-то странное сообщение... https://pastebin.com/YWT67E7p
Как решать?
Переходим по ссылке в условии и видим следующую картину:
Фраза I like to post secret data in the service for publishing messages with a limited length недвусмысленно намекает на твиттер - блог, в котором можно постить заметки не длинее 280 знаков.
Осталось понять, как найти там нужную запись. Для этого смотрим на имя автора текста.
А заходим в его аккаунт в твиттере...
Кажется, флаг найден!
Условие: Наш дизайнер фанат Rammstein и стеганографии. Кажется, он что-то прячет в своих файлах. http://ctf.msk.ru/tasks/dezzign.mp3
Как решать?
Скачаем файл и попробуем посмотреть на его свойства.
На первый взгляд ничего подозрительного, но по-умолчанию показываются не все свойства. Откроем файл в программе для просмотра ID3 тэгов (информация о имени исполнителя, названии, жанре и тд, зашитая в файл). В моем случае это Tag Editor Free - первая попавшаяся программа из App Store.
В поле Genre лежит что-то странное, похожее на кодировку base64. Воспользуемся base64decode.org (первая ссылка по запросу base64 decode), чтобы декодировать сообщение.
К сожалению, флаг мы не увидели (да и большеват исходный код для одной строки), вместо него - снова что-то странное. Код PNG
в начале намекает, что перед нами картинка. Давайте попробуем сохранить ее в файл с расширением .png.
Скорее всего просто положить текст в файл не получится, поэтому сначала загуглим декодер из base64 в hex (https://base64.guru/converter/decode/hex).
А затем сохраним в файл, используя бинарный редактор (hex editor). Опять же, мне подошло первое попавшееся решения из App Store. Вставляем полученный hex в левую часть редактора и сохраняем.
Кажется, мы нашли флаг...
Условие:
Мы обнаружили этот скриншот на компьютере опасного хакера, ломанувшего наши базы данных.
Возможно, в нем скрывается какая-то полезная информация.
http://ctf.msk.ru/tasks/123.png
Как решать?
Скачаем и откроем файл с картинкой, на первый взгляд ничего подозрительного, кроме намека на архив.
Посмотрим на файл внимательней в бинарном редакторе.
IEND
- это метка конца изображения, значит после картинки в файле есть еще что-то, и судя по PK
- это архив. Уточнить это можно в списке сигнатур файлов.
Попробуем поменять расширение на .rar
и разорхивировать файл. Такое в теории возможно, т.к. архиватор игнорирует все содержимое файла, пока не увидит заголовок архива. Получается...
Две похожие картинки с намеком на XOR. Попробуем по-байтово "поксорить" их через питон.
Как видим, большинство байт - нулевые, попробуем от них избавиться, а то, что останется, перевести в символы.
data1 = open('secret_data.png', 'rb').read()
data2 = open('x0Rnull.png', 'rb').read()
for i in range(len(data1)):
if data1[i] ^ data2[i] != 0:
print(chr(data1[i] ^ data2[i]), end='')
Кажется, флаг найден!
Автор задач - Алексей Посикера.