Данное описание подготовлено и публикуется со слов создателя этих заданий – Sergey Nord (@rottenmechanism). Дальше текст передается as-is.

1) Наше путешествие начинается с QR кода

переходим по нему и попадаем на https://telegra.ph/Wake-up-Neo-07-05

2) внимательно осмотрев страницу видим 2 пути:

Самый очевидный - перейти по ссылке под картинкой с кроликом на drive.google.com/file/d/1LVzPeTM4njooOSCJ5QqCSEZ-8e4v9rkz и второй менее очевидный - спрятанная ссылка на https://pastebin.com/84WBMkVg в нижнем подчёркивании после знака вопроса. Сначала пройдём по первому пути

3) Проходим на гугл диск и видим ту же картинку с кроликом, скачиваем её и начинаем анализировать

4)Открываем картинку текстовым редактором и в конце видим:

flag{F0llowTh3WhiteR4bbit} уу, первый флаг

А также продолжение в виде HEX кода

68 74 74 70 73 3A 2F 2F 74 69 6E 79 75 72 6C 2E 63 6F 6D 2F 79 65 36 37 34 61 38 38

5) Делаем преобразование HEX->ASCII и получаем https://tinyurl.com/ye674a88 ссылка ведёт на гугл диск с архивом, скачиваем и получаем Z1ON.rar

6) Архив запаролен, стандартные не подходят и брут не эффективен, пока что оставим его и порешаем второй путь

7)Переходим на pastebin и видим строку cGJieGE6Ly9rdGtzLnpjLzM0Y1o4VAo= очевидно это base64, декодируем и получаем pbbxa://ktks.zc/34cZ8T

8) Похоже на ссылку, но перепутаны буквы, воспользуемся шифром Цезаря ROT8 https://clck.ru/34uR8L

9) Ссылка ведёт на картинку на том же гугл диске, скачиваем её

10) Из названия файла получаем flag{TimeT0Tak3TheR3dPill} а на ней самой видим подсказку, что в случае необходимости нам нужно воспользоваться кодами доступа в Зион

11) Гуглим коды 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 0, 1, 3, 4, 7, 11, 18, 29, 47, 76, 0, 1, 4, 5, 9, 14, 23, 37, 60, 97, 0, 1, 5, 6, 11, 17, 28, 45, 73, 118, 0, 1, 6, 7, 13, 20, 33, 53, 86, 139, 0, 1, 7, 8, 15, 23, 38, 61, 99, 160, 0, 1, 8, 9, 17, 26, 43, 69, 112, 181, 0, 1, 9, 10, 19, 29, 48, 77, 125, 202, 0, 1, 10, 11, 21, 32, 53, 85, 138, 223 которые представляют собой последовательность Фибоначчи и распаковываем архив Z1ON.rar

12)Получаем 1tp.png - это половинка qr кода, она горизанально отражена, на что намекают квадраты разметки и название файла, зеркалим.

13) У обычного человека возник бы закономерный вопрос: где вторая половинка, нужно бы её найти, но не у одного нашего героя, даже с большой буквы Героя - Избранного, NNeo, как мы его окрестили, он не стал искать вторую часть, а решил восстановить то что есть, но об этом в конце райтапа

14) Вспоминаем что у нас ещё есть картинка со вторым флагом и подсказкой к зиону, прогоняем её бинволком и видим, что она содержит в себе RAR архив

15) Меняем расширение на RAR и открываем. внутри вторая часть qr кода.

16) Соединяем части воедино и переходим на финальную страницу https://telegra.ph/Congratulation-that-is-all-07-05 с последним флагом flag{_M4trix_Has_Y0u_Neo_}

Готово, вы восхитительны!

Страница всячески намекает нам что на ней больше ничего нет, но особо пытливые в итоге найдут своё предназначение^^


Но знаете, есть избранный, который прошел этот квест по-своему и далее его цитата, а этим избранным был Альберт Эйнштейн участник, занявший 4 место в нашем CTF Victor Ryabinin

1) сначала прошел по qr

2) открыл ссылку под картинкой внизу (скрытую сначала не заметил)

3) скачал картинку, нашел через strings первый флаг и ссылку на архив

4) к архиву пробовал набрутить простые пароли, не получилось, фразы из фильма - тоже мимо, нашел пароль который вводила тринити в одной из частей Z10N0101, не прошло, загуглил коды доступа в зеон - прокатило, получил пнг - нижнюю часть картинки

5) смотрю -картинка обрезанная, “ага”, старый трюк с изменением высоты - поправил высоту до 1023, но нет, скрытой второй части не оказалось

6) ок, что если вся инфа в нижней части QR кода, а в верхней ничего нет? идем на https://merri.cx/qrazybox/, выбираем размер, начинаем рисовать - какая-то ерунда, большой и малый квадрат поменяны местами, ок, отражаем по вертикали, квадраты на месте, похоже на правду

7) черным и белым помечаем клетки которые известны, (то что версия 3 и L кодировка тоже выясняем походу, отмечая квадраты в правом верхнем углу, запускаем анализ

Error Correction log :
Show
Decoding Error :
Show
Back to editor
QR version : 3 (29x29)
Error correction level : L
Mask pattern : 3
Number of missing bytes (erasures) : 30 bytes (42.86%)
Data blocks :
["01000011","00110110","10000111","01000111","01000111","00000111","00110011","10100010","11110010","11110111","01000110","01010110","11000110","01010110","01110111","00100110","00010010","11100111","00000110","10000010","1111????","????????","????????","????????","????????","????????","????????","???00111","01010110","11000110","00010111","01000110","10010110","11110110","1110????","????????","????????","????????","????????","????????","????????","???10111","00110010","01010110","00010110","11000110","11001100","00110001","0000????","????????","????????","????????","????0000","11101100","00010001","???11011","00100100","00110000","10101000","11000000","100?????","????????","????????","???00001","11110001","10110100","010?????","????????","????????","???11110"]
----------------Block 1----------------
Reed-Solomon Block : [67,54,135,71,71,7,51,162,242,247,70,86,198,86,119,38,18,231,6,130,0,0,0,0,0,0,0,0,86,198,23,70,150,246,0,0,0,0,0,0,0,0,50,86,22,198,204,49,0,0,0,0,0,236,17,0,36,48,168,192,0,0,0,0,241,180,0,0,0,0]
Final data bits :
01000011001101101000011101000111010001110000011100110011101000101111001011110111010001100101011011000110010101100111011100100110000100101110011100000110100000100000000000000000000000000000000000000000000000000000000000000000010101101100011000010111010001101001011011110110000000000000000000000000000000000000000000000000000000000000000000110010010101100001011011000110110011000011000100000000000000000000000000000000000000001110110000010001
[0100] [00110011] [011010000110111010001101110100011011100000110111001100100111010001001011110010010111101101110100011011001010110110110001101100101011011001110110111001001101100001001001011100110111000001101101000001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101011011011000110110000101101110100011011010010110110111101101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100100100101011011000010110110110001101101100110110000110000001000000000000000000000000000000000000000000000000000]
Mode Indicator : 8-bit Mode (0100)
Character Count Indicator : 51
Decoded data : https://telegra.ph  latio` %allà 
Final Decoded string : https://telegra.ph  latio` %allà 
Error :
- Too much missing bits

получилось h??p??//te?????.ph/????????latio????????s-all-????? ок, ссылка похожа на https://telegra.ph/ в конце у них идет номер месяца и число статьи, т.е. https://telegra.ph/????????latio????????s-all-07-0[5-9] число от 07-05 (дата старта квеста до 07-09, когда был первый прошедший квест) далее идем на https://www.nayuki.io/page/creating-a-qr-code-step-by-step, генерируем qr код по известной части фразы, медленно и кропотливо переносим букву за буквой (буквы в qr кодах идут кривыми блоками)

8) запускаем анализатор, получаем https://telegra.ph/????????lation???????s-all-07-0? не сильно много это дало, возможно это опять фраза из фильма? качаем субтитры 4-х частей матрицы и грепаем по lation получили: simulation, congratulations, population, о, congratulations вроде как как раз подходит по маске, ок, предположим https://telegra.ph/congratulation???????s-all-07-0? поздравляем, это все? что, ж, звучит правдоподобно,

9) дальше чисто муки перебора вариантов

  • congratulations-thats-all, не подходит,
  • congratulations-that-is-all - не влазит, хмм, а что если не “поздравляем, это все”, а “поздравление, это все?”

проверяем congratulation-that-is-all и все даты, результат: https://telegra.ph/congratulation-that-is-all-07-05

10) закрались сомнения что именно так надо было проходить квест, пишем разрабам квеста и узнаем что оказывается была вторая часть qr кода в картинке для второго ключа, проверяем binwalk и находим архив, спрятанный в картинке с другой половиной QR кода