Хабрахабр

Итоги квеста, который вы прошли. Или нет

Привет, Хабр!

Подводим итоги квеста от MBLT DEV 2018: разбираем задания и дарим подарки — билеты на конференцию, подписки на все продукты JetBrains и сертификаты Skyeng самым удачливым.

Автор ваших мучений — damnerd. Знаем, что вам пришлось поломать голову. Рассказываем, что же он придумал, и как вы должны были решать задания.

Вход в квест

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

Хотя некоторые ринулись записывать декоративные буквы из другой сцены:

Переписываем шифр и получаем: aHR0 cHM6 Ly9t Ymx0 ZGV2 LnJ1 L3J1 L3F1 aXo=

Недолго думая, выполняем Увидев на конце знак =, моментально понимаем, что это строка, закодированная в формате base64.

echo 'aHR0 cHM6 Ly9t Ymx0 ZGV2 LnJ1 L3J1 L3F1 aXo=' | base64 --decode

(либо гуглим base64 decode online) и получаем линк на вход в квест: https://mbltdev.ru/ru/quiz

Ходят слухи, что были и такие, кто «угадал» линку по памяти, либо показав свой скилл экстрасенсорики. В принципе, URL остался таким же, как в прошлый раз, ибо программисты оказались ленивыми и не поменяли его.

Задание 1

При переходе мы показали картинку: Нужно было перейти по ссылке и написать, название какой команды мы оставили в подсказке.

Смотрим, что в нём: Тут всё довольно просто: Source = исходный код.

Как оказалось, наша попытка привлечь внимание обернулась для некоторых наоборот отвлечением внимания от подсказки. Здесь мы не стали запутывать человека каким-либо обфусцированным кодом или чем-то подобным, а вместо этого на самом видном месте самым очевидным способом (словами коровы) выдали подсказку. Однако смотреть надо было именно на текст: It’s in the name. Многие в качестве ответа на вопрос вводили команду cowsay, которая генерирует подобную ASCII-графику. Имя команды было непосредственно в самой подсказке: dig. Dig it?! Собственно, имя команды мы и просили (потому что саму команду можно выполнить с одинаковым успехом при разном наборе параметров, а программисты ленивые и система проверки ответов глупая), так что это и было ответом на первый вопрос.

Задание 2

Мы попросили написать её значение. После выполнения команды “dig” нужно было увидеть подсказку, с помощью которой можно перейти к следующему шагу.

Пососедству стоящие name и dig наводят на следующий шаг: необходимость поковырять (или покверить, если угодно) доменные записи для имени, где лежит страница с подсказкой. Возвращаясь к подсказке из прошлого задания, помимо слова dig, рядом стояло слово name, несущее в себе смысл domain name. Надо было догадаться, что запросить необходимо TXT-запись: Конечно, по-умолчанию dig запрашивает A-запись, в которой ничего нет, кроме основной записи с IP-адресом.

> dig +nocmd +noall +answer q1.mbltdev.ru txt
q1.mbltdev.ru. 10108 IN TXT "quest@95.163.108.79:10022"

Либо загуглить dig online и воспользоваться простой веб-мордой, не читая маны по дигу:

163. Непосредственно значение этой текстовой записи и было как ответом на задание, так и подсказкой к следующему действию — зайти по SSH на хост 95. 79 под пользователем quest на порт 10022: ssh quest@95. 108. 108. 163. 79 -p 10022.

Задание 3

Попросили вычислить пароль и ввести его. Мы загадали ребус о том, что общего у Android и iOS.

Но это ребус в квесте, который никто не может пройти! Многие писали, что это слишком сложно. Но вообще всё было в тексте, даже слово Parent.

Пересечение android и apple → OS
Прародитель их ОС → Unix
lowercase(Unix) → unix
sha1(unix) → d13bbbd92b83ddaad994a12bd9d20dfba5fff139

> echo -n "unix" | shasum
d13bbbd92b83ddaad994a12bd9d20dfba5fff139 -

Как обычно, можно было загуглить sha1 online и вычислить сумму, не отходя от кассы.

Задание 4

Мы просили получить следующую подсказку после введения пароля из Задания 3 и написать её значение. Всё, что понадобилось для выполнения этого задания, лежало в домашней директории.

На этом этапе многие хотели сдаться и писали нам гневные комменты, но в действительности всё было очень просто.

Оставалось два файла с «пустым» названием. В домашней директории лежит всего 4 файла, два из которых не при делах — .profile и .bashrc были почти полностью дефолтными для нового пользователя конфигами. Это не странный смайлик, а регулярное выражение для пробельного символа. Кстати, даже SSH MOTD намекал на это своей фразой /\s/. Второго — необычный пробел из китайской письменности (U+3000 IDEOGRAPHIC SPACE). В имени первого из файлов был символ обыкновенного пробела (U+0020: SPACE).

Обычный Terminal без труда копировал символ, и можно было просто выполнять над ним команды простым ⌘C-⌘V. У пользователей iTerm2 на Mac OS была дополнительная трудность: этот эмулятор не хотел копировать необычный пробел. Но для пользователей кривых эмуляторов, а также любителей извращений, были и другие методы, например, сделать ls -li, чтобы узнать inode number файла, и дальше выполнять команды с помощью find:

find . -inum 660402 | xargs cat

Тут знающие люди сразу могли догадаться, что это листинг программы на языке Whitespace, загуглить whitespace interpreter online и получить следующую подсказку. Кстати, эта команда просто выплёвывает в терминал много пустых строк. Дополнительной подсказкой было, что один из этих файлов имеет флаг на исполнение (+x) и перловый шебенг. Незнающие люди могли просто догадаться, что надо как-то совместить два файла, которые есть у них в распоряжении. Так или иначе, выполнение программы выдавало ответ: http://q1.mbltdev.ru/q.webp

Задание 5

В пятом нужно было перейти по ней и ответить на вопрос. В четвёртом задании мы спрятали ссылку http://q1.mbltdev.ru/q.webp.

По данному URL’у была картинка в формате tiff, сохранённая с разрешением webp. Финальное задание было простым для разрядки обстановки. Некоторые не открывали. Некоторые умные графические просмотрщики открывали её без вопросов. Но достаточно было спросить того, кто знает:

> file q.webp
q.webp: TIFF image data
> mv q.

В самой же картинке был простой вопрос:

MBLT DEV всегда проходит в Москве. Ответ: 0. В этом году встречаемся 28 сентября.

Это было возможно, если пошариться по серверу из 4-го задания, потому что и страничка из первого задания, и картинка из последнего, и задания 3 и 4 хостились на одной машине (не забывайте про лень разработчиков). Кстати, говорят, некоторые находили картинку обходным путём. Если вкратце:

quest@questmblt2018:~$ grep root /etc/nginx/sites-enabled/quest root /var/www/html;
quest@questmblt2018:~$ ls /var/www/html/
index.html index.nginx-debian.html q.webp

Post Mortem

Например, народ начал переписываться broadcast сообщениями, мешая другим проходить квест. Кстати, о лени разработчиков: мы хоть и знали, что не обойдётся в подобном квесте без кулхацкеров, но поленились защититься от всех возможных проблем.

Конечно же нашлись и скрипт-киддисы, запускавшие форк-бомбы, ломающие логин для других пользователей. Был какой-то умелец, который закачал на сервер 15 ГБ данных, исчерпав место на диске. Ну и не обошлось без «спам»-ботов, пытавшихся, зная правильные ответы, застолбить себе побольше шансов в финальной лотерее.

Приносим свои извинения тем, кому помешали недобросовестные участники.

Подарки и победители

Мы получили 666 ответов, почистили читеров, в итоге с квестом успешно справились 297 человек. 3070 человек попытались пройти квест. Среди них мы и разыграли основные подарки.

Записали видео с выбором победителей. Каждому участнику присвоили порядковый номер и с помощью генератора случайных чисел разыграли призы. Имейлы скрыты из соображений приватности.

Билеты на конференцию мобильных разработчиков MBLT DEV 2018

Билеты получают Владислав Козлов, Дмитрий и Игорь.

Годовые подписки на любой продукт JetBrains

Подписки получают Павел Парфёнов, Вадим Скрипник и Андрей.

4 бесплатных занятия английским в онлайн-школе Skyeng

Сертификаты получают Сергей и Валентин.

2 бесплатных занятия английским в онлайн-школе Skyeng

Сертификаты получают Алексей и Евгений.

Проверяйте почты! Остальным участникам квеста мы тоже отправили небольшие подарки.

Встречаемся на MBLT DEV 2018

Участников ждут полезные доклады от разработчиков из Netflix, Uber, Revolut, Badoo и других компаний, нетворкинг и фан. Конференция пройдёт 28 сентября в Москве. Билеты доступны на сайте MBLT DEV. Мы приготовили ещё несколько квестов с крутыми призами.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть