На этой неделе я просто решил сыграть в Meepwn CTF Quals 2018 с командой HackXore, потому что в прошлом году мы набрали ТОП10 (10-е место) в MeePwn 1st CTF 2017, и это был действительно хороший вызов.

13/07/2018

CTF начался в 19:00 UTC, и я просто проснулся в 20:00 UTC, пошел на встречу в 21:00 UTC, закончил встречу в 23:00 UTC, затем я присоединился команда в 23:30 UTC, чтобы сыграть в Meepwn CTF Quals 2018 и получить удовольствие от решения задач с такими крутыми парнями.

Когда я присоединился к ребятам, то обнаружил, что они решают одну задачу (MISC [Добро пожаловать — 100 баллов]). и было два задания в категории MISC, одно задание осталось с 0 решением (Белый снег, Черная тень — 1000 баллов).

  1. Белый снег, черная тень

А вот и приставка.

В первый раз и после того, как я понял, что это изображение JPEG, я пробовал некоторые инструменты стеганографии, такие как exiftool, binwalk, в первую очередь … и т. д., но я не могу извлечь из этого изображения ничего интересного.

Затем я попытался связать его, после чего заметил кое-что интересное:

Я обнаружил, что из этого изображения есть файл PDF, и мне нужно извлечь его другим способом.

Через некоторое время мой товарищ по команде (@rls1004) прислал мне сообщение о том, что она нашла Eof в середине Hex Bytes.

Хорошо, после того, как я проверил это, я нашел эти интересные байты (FF D9), и это Eof (конец изображения JPEG):

Это означает, что после изображения JPEG есть еще один файл. И, как вы видите, есть интересная вещь, а именно (ПК); это подпись ПК!

Я немного поискал в Google, затем нашел интересную статью в Википедии, которая дает нам Список подписей файлов.

Из этой статьи я понял, что подпись PK может поддерживать ZIP-файлы, что означает, что подпись может быть подписью ZIP-файла, что означает, что:

Изображение = Изображение + ZIP-файл

У нас есть изображение, и нам нужно проверить ZIP-файл, поэтому давайте извлечем только ZIP-файл:

Есть еще один способ сделать все это довольно просто и быстро, используя две строки кода Python:

#!/usr/bin/env python
#MeePwn CTF Quals 2018 | MISC [White Snow, Black Shadow - 1000pts]
#@Abdelkader
#@rls1004
msg = open("evidence.jpg","rb").read()[0x21f5A:]
open("message.zip","wb").write(msg)

Но мы не можем открыть этот ZIP-файл, и это проблема, через некоторое время мой товарищ по команде сказал мне, что мы должны исправить заголовок этого ZIP-файла, и ошибка была в двух байтах (05 06) для информации о разделенном сжатии, поэтому, чтобы исправить это, мы должны изменить его с дробного сжатия на одинарное сжатие (03 04):

Затем я сохранил его как message.zip, распаковал и нашел (message.pdf), но не могу его открыть, потому что это поврежденный файл.

Я использовал Online Repair PDF File Tool для его восстановления:

Затем я сохранил его как (message_recovered.pdf):

Но до сих пор я не вижу флаг. Поэтому я попытался погуглить об этой цитате, чтобы найти исходный текст:

«Когда вы устраните невозможное, все, что останется, каким бы невероятным оно ни было, должно быть правдой».

— Сэр Артур Конан Дойл

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

После сравнения я заметил, что между этими двумя текстами есть несколько разных символов и слов, чтобы собрать флаг, я просто попытался прочитать текст, затем отсортировать все слова или символы, не относящиеся к теме, и, наконец, я также правильно собрал его.

ФЛАГ:MeePwnCTF{T3xt_Und3r_t3Xt!!!!}

Это была забавная задача, я думаю, что я потратил два часа, чтобы решить ее с моим товарищем по команде @rls1004, который также помог мне, это первая часть моего описания, и есть другие описания задач, которые я решил.

Хочу выразить огромную благодарность команде MeePwn, которая организовала этот CTF и создала такие крутые задачи, как эта.

Автор статьи: Абделькадер Белкейд