Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Пару дзён таму мы завяршылі адну з самых эмацыйна-зараджаных падзей, якое нам пашанцавала праводзіць у рамках блога - хакерскую анлайн-гульню са знішчэннем сервера.

Вынікі перасягнулі ўсе нашы чаканні: удзельнікі не проста прынялі ўдзел, а хутка арганізаваліся ў зладжанае кам'юніці з 620 чалавек у дыскардзе, якое літаральна штурмам узяло квэст за двое сутак без перапынку на сон.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
І вось як гэта скончылася:

Як усё пачыналася і пра што ўвогуле гаворка?

Гульня пачалася 12 жніўня, калі мы выклалі ў блогу пост з відэаролікам, у якім хакер у выяве чэрапа прапануе згуляць у гульню, знішчыць сервер, уладкаваць у пакоі кароткае замыканне (ну або міні-пажар) і забраць пакінутыя ў шарадзе грошы.

Гэта быў анлайн-квест: мы запусцілі ютуб-трансляцыю з пакоя, якую запоўнілі iot-прыладамі, подкроватным серверам (які і трэба было знішчыць), а над серверам замацавалі акварыум і падвесілі над ім гіру. Каб гульня была больш вострасюжэтнай, мы вырашылі зрабіць прызавы фонд у 200 000 рублёў, які загрузілі ў Шродэр і настроілі яго на ўключэнне кожныя 60 хвілін. Кожную гадзіну Шродэр з'ядаў па 1000 рублёў - чым раней гульцы спынілі б яго, тым больш грошай бы выйгралі.

Будаваць гэты квэст было само па сабе квэстам - нам прыйшлося харчавацца адной дастаўкай і спаць па некалькі гадзін у суткі прама ў тым жа пакоі. Але самым дзіўным было назіраць за палётам думкі гульцоў і іх эмацыйнай аддачай у працэсе.

Калі сапраўды, то вынаходлівасць гульцоў у разгадцы задачак перасягнула нашу сціплую задумку ў шмат разоў: кожную вольную хвіліну мы чыталі чат дыскорда і ў некаторых выпадках літаральна рыдалі ад смеху, пазнаючы, чым займаюцца гульцы і як яны жартуюць падчас.

Над праектам не пакладаючы рук працавалі 7 чалавек: бекендэр, спецыяліст-хардвашчык, сапраўдны кінапрадзюсер, CG-дызайнер і два ідэйныя натхняльнікі-супрадзюсары.

Мы раскажам у наступных пасадах, як менавіта квэст быў рэалізаваны з тэхнічнага пункту гледжання, а пакуль я раскажу яго разгадку: як менавіта трэба было хакаць гэты пакой на трансляцыі. Заадно ўспомнім храналогію падзей, а таксама ўсе вар'яцкія ілюмінацкія тэорыі з чаціка дыскорда і ўсё.

Што было ў гульцоў у пачатку гульні

Усе прадметы ў пакоі дзяліліся на тры катэгорыі:

  • Простыя ў кіраванні, ня гульнявыя iot-прылады
  • Гульнявыя прылады для праходжання квэста
  • антураж

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Мы размясцілі 8 вельмі простых у кіраванні элементаў: дзве лямпы, адну гірлянду, пяць літар СОКАЛ, кожнай з якіх можна было змяняць колер. Усё гэта можна было ўключаць/выключаць непасрэдна з сайта і адразу бачыць вынік на трансляцыі — мы спецыяльна зрабілі іх даступнымі для ўсіх гульцоў, незалежна ад узроўню тэхнічнай падкаванасці.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Усё, што проста ўключалася з сайта

З важных гульнявых элементаў, якія патрэбны былі для праходжання квэста, і доступ да якіх, было не так проста атрымаць:

  1. Сервер з адчыненым вечкам і акварыумам над ім
  2. Гіра, падвешаная так, каб разбіць акварыум
  3. Мегатрон 3000 - магутная лазерная ўказка, накіраваная на вяроўку, якая трымае гіру
  4. Магутны вентылятар, які запускаўся пры нагрузцы на сервер
  5. Фліпчарт, на якім былі напісаны лагін і пароль да Мегатрону
  6. Тэлефон, на які можна было патэлефанаваць і ўбачыць свой званок у прамым эфіры
  7. Шродэр, які еў па 1000-рублёвай паперцы за гадзіну

Як менавіта разгадваўся квэст

Скажу адразу: куфэрак адчыняўся даволі проста.

Мэтай гульні было спыніць Шродэр, уладкаваўшы ў пакоі кароткае замыканне. Для гэтага трэба было разбіць акварыум, запусціўшы ў яе гіру і заліць вадой сервер. Гіра трымалася на шнурку, на які быў накіраваны Мегатрон. Захапіўшы кіраванне Мегатронам, вяроўку можна было перарэзаць. Гэта рабілася ў 5 простых крокаў:

Крок 1. Нагрузіць сервер, які стаіць у пакоі

Напрыклад, дасылаючы пакеты камандай.

ab -r -n 10000 -c 100 -s 280 -l https://ws.ooosokol.ru/captcha

Падказкай была вельмі грузіла капча на старонцы Прайс-ліст.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Тая самая капча, якую трэба было атакаваць

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Пры нагрузцы сервера падвышалася яго тэмпература і гэта можна было адсачыць на маніторынгу, адкрытым прама перад камерай. Следам уключаўся вентылятар, які адчыняў лёгкую фіранку на фліпчарце. Тады адкрываўся напісаны на дошцы лагін і пароль доступу да старонкі Мегатрона.

А саму старонку кіравання Мегатронам можна было знайсці, праверыўшы ўсе сертыфікаты, выпушчаныя на дамен ooosokol.ru.

На паддамене megatron.ooosokol.ru знаходзілася старонка кіравання Мегатронам. Але яна не адчынялася, пакуль на Мегатрон не пададуць першаснае харчаванне.

Усе гэтыя этапы гульцы прайшлі амаль адразу ў каментарах трансляцыі на youtube. Далей задачы былі цяжэй і гульцы стварылі дыскорд-сервер RUVDS Hack Room і працягнулі абмеркаванне там.

Крок 2. Падаць першаснае харчаванне на Мегатрон

Усе разумныя прылады, якія кіруюцца з сайта (тыя самыя свяцільні, якія без прыпынку ўключалі або выключалі гульцы) мелі свае ідэнтыфікатары.

Каб падаць першаснае сілкаванне на Мегатрон і заадно падсвятліць яго, трэба было знайсці і ўлучыць утоеную прыладу на старонцы кіравання офісам.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Для гэтага трэба было паглядзець на ідэнтыфікатары прылад і заўважыць, усяго прылад 4, а на сайце даступна толькі 3.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Старонка Мегатрона пры ўключэнні 4-й прылады станавілася даступная і сам лазер падсвятляўся. Але пры гэтым страляць лазерам было немагчыма, а на яго старонцы вісела паведамленне, што лазер пакуль недаступны і падказка: у офісе выбіла коркі, трэба тэлефанаваць у кіравальную кампанію і прасіць падаць сілкаванне.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Падказка аб кіруючай кампаніі

3. Датэлефанавацца да кіруючай кампаніі і папрасіць уключыць харчаванне Мегатрона

Па Лоры Мегатрон не мог стрэліць, таму што ў офісе выбіла пробкі. Уключыць харчаванне назад магла толькі кіруючая кампанія, да якой трэба было датэлефанавацца і прайсці ідэнтыфікацыю, як уладальнік ТАА.

Знайсці нумар кіруючай кампаніі было лёгка – мы ўставілі яе прама ў футэр.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

А вось прайсці ідэнтыфікацыю было больш складана.

Пры званку на нумар 74991130688, трубку паднімала дзяўчына-аператар і нудным голасам прасіла назваць ІНАЎ кампаніі і поўнае ПІБ ўладальніка. Без гэтага ўключаць харчаванне яна адмаўлялася і тлумачыла гэта тым, што яна звычайная дыспетчарская на аўтсорсе, у іх 2000 кліентаў і офісаў і без гэтай інфармацыі знайсці патрэбны проста не атрымліваецца.

Для гульцоў гэта аказалася самым складаным этапам. Правільныя ІНАЎ і Прозвішча, імя ўладальніка шукалі амаль двое сутак, а я (у асобе аператара дыспетчарскай) за гэты час прыняла больш за 400 званкоў. Тэлефон тэлефанаваў кожныя 2-3 хвіліны.

Рабяты капалі як маглі. У ход ішло ўсё: яны трыбушылі зыходнікі сайта, гуглілі ўладальніка сайта Сакалова, прабівалі па сацсетках.

Яны шукалі ІНАЎ розных кампаній
Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Амаль поўная схема пошуку

У нейкі момант нават патэлефанавалі з падменай нумара - быццам бы тэлефанавалі з офіса кампаніі Сокал, указанай у футары.

Тады мы даведаліся, якая велізарная колькасць кампаній носіць назву Сокал. Практычна кожнай з гэтых кампаній дазвоньваліся гульцы, але гэта ні ішло ні ў якое параўнанне з тым, што перажыў сайт lasermasters.ru, у якіх мы сапраўды куплялі той самы Мегатрон каля месяца таму.

Спачатку дыскорд атакаваў падтрымку Лазерсмайстэрс.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Затым змаглі знайсці там чыйсьці акаўнт! У той час як падтрымка Лазермайстарс ужо перастала скупіцца на выразы.

Асцярожна, прыбярыце дзяцей ад экрана
Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

У рэшце рэшт, вырашылі Лазермастэрс проста заддосіць і іх сайт упаў. Роўна як удалося пакласці і сайт Сокала, хоць мы яго хутка паднялі.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Падчас расследавання рабяты з дыскорда нават знайшлі акцёра, фатаграфію якога мы купілі са сцёкаў, каб ён згуляў ролю галоўнага антаганіста, уладальніка ТАА Андрэя Сакалова. Апынулася, яго клічуць Юры і ён зусім не ў курсе, у якую заварушку патрапіў.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Андрэй Сакалоў, персанаж гульні

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Юры, мадэль

Калі б ён ведаў, як прымусіў 600 чалавек не спаць двое сутак…)

Потым капаць ужо пачалі канкрэтна пад мяне, як пад арганізатара квэста (што цалкам магло б скончыцца поспехам, калі б хлопцы здагадаліся ўзламаць мае працоўныя каналы).

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Я нават крыху занепакоілася, калі яны назвалі маё імя па бацьку і нават ІНАЎ. Але палегла, калі падчас працы сапсаванага тэлефона ў мяне раптам з'явіўся старэйшы брат, які раптам апынуўся тэхнічным дырэктарам Хабра.

Мой дарагі родны брат, якому таксама перапала
Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Тым часам здагадкі станавіліся ўсё больш неверагоднымі і неверагоднымі.
Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

І дайшло да ілюмінацкіх тэорый.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Самыя сакавітыя тэорыі змовы тычыліся Спанч Боба, Гары Потэра і мігценні кітайскай дыёднай гірлянды, якую мы паклалі ўнутр сістэмнага блока.

Адкуль Спанч Боб і Гары Потэр, скажаце вы? Мы засунулі іх адрасы ў старонку кантактаў Сокала і гэта спарадзіла масу здагадак у дыскорд-супольнасці. Хаця мы проста хацелі аддаць даніну сваім любімым творам дзяцінства.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Тая самая дасылка на старонцы "Кантакты"

І ў выніку

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Аказалася ў серыяле сапраўды ёсць дакументы Губкі Боба. Іх называлі як ІНАЎ

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Адна з самых складаных тэорый была аб тым, што ў мігценні кітайскай гірлянды зашыта паведамленне азбукай морзэ.

Мігаценне запісвалі і спрабавалі расшыфраваць
Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

З тэорый прасцей - рабяты спрабавалі зразумець, не зашытая ці падказка ў картах.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Па дарозе нас параўноўвалі з Цыкадой 3301 - незаслужана высокая ацэнка, але ўсё роўна прыемная.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Гульцы на ўсю моц спрабавалі сацыяльную інжынерыю. Мне тэлефанавалі пад выглядам ФСБ, пажарных, самога Сакалова, яго былой жонкі і ахоўніка, які нібыта сядзіць у нас унізе. Казалі, што пачаўся пажар, хтосьці затрымаўся ў ліфце, а самая немая гісторыя была аб тым, што ў офісе, ахопленым агнём, нібы сядзіць сабачка які тэлефанаваў.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Спробы подкупу таксама былі

Паціху ў чаце сталі з'яўляцца ўласныя мемы.

Вось парачка
Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

А заводы тым часам прастойвалі
Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

падказка

Грошай у шарадзе рабілася ўсё менш. Каб пераможцу дасталася хоць нешта, мы вырашылі падказку. Заадно, рушыўшы ўслед правілам геймдызайну, прама перад фіналам падняць напругу.

Асобным постам у блогу мы выклалі ролік. Спачатку быў устаўлены кавалачак з Байцоўскага Клуба - як адсылку да Тайлера Дэрдэна, які падумваў устаўкай 25-га кадра ў фільмы, пакуль працаваў у кінатэатрах.

Мы вырашылі прымяніць гэтую ж механіку і ўставілі 25-м кадрам падказку, як загугліць верны ІНАЎ і Прозвішча, імя ўладальніка.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Пасля гэтага хлопцы разабраліся вельмі хутка

Крок 4. Пастраляць лазерам у не-баявым рэжыме

Пры падачы харчавання кіруючай кампаніяй і пасля ўключэння коркаў, Мегатрон уключаўся і мог страляць у тэставым рэжыме. У форму для ўводу ўжо быў падстаўлены токен для тэставага стрэлу.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Кожныя 25 секунд генераваўся новы токен, яго можна было выкарыстоўваць, каб уключыць лазер на 10 секунд на магутнасці 10/255

Затым лазер астуджаўся 1 хвіліну і ў гэтую хвіліну быў недаступны, не прымаў новыя запыты на стрэл.

Гэтай магутнасці зусім не хапала для таго, каб перапаліць вяроўку, але любы гулец мог пульнуць з Мегатрона і ўбачыць лазерны прамень у дзеянні.

Рэакцыя супольнасці была больш, чым бурнай
Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Але ўсё хутка супакоіліся і зразумелі, што гэта яшчэ не канец гульні
Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Далей супольнасць пачала разбірацца, як запусціць баявы рэжым.

Брэйнштарм
Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
У дыскордзе з'явіліся фэйкі

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Мы не ведалі, што на ножцы стала на трансляцыі нешта напісана

Супольнасць падышла да кроку 4. Разабрацца, як генеруюцца токены: знайсці gist і згенераваць токен, які ўключае лазер у баявым рэжыме

Баявы рэжым Мегатрона - гэта 100% магутнасць лазера ў 3 Вт. Гэтага цалкам дастаткова на 2 хвіліны, каб перапаліць вяроўку, якая трымала гіру, разбіць акварыум і заліць сервер вадой.

Мы пакінулі некалькі падказак на гітхабе праекта: а менавіта код генерацыі токена, па якім можна было зразумець, што тэставы і баявы токены генеруюцца на аснове аднаго паказчыка лічыльніка. У выпадку баявога токена акрамя значэння лічыльніка яшчэ выкарыстоўваецца соль, якую амаль цалкам пакінулі ў гісторыі змене гэтага gist, за выключэннем двух апошніх сімвалаў.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера
Як усе хутка здагадаліся, гэта было 42

У каментарах гіста была перапіска Андрэя Сакалова з распрацоўшчыкам («мудры расраб», як назвалі яго хлопцы з дыскорда).

У перапісцы Андрэй дасылаў адзін з баявых токенаў, а расраб адказаў, што гэты токен быў ініцыялізаваны пры значэнні лічыльніка 42.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Ведаючы гэтыя дадзеныя, можна было перабраць 2 апошнія знака солі і фактычна высветліць, што для яе выкарыстоўваліся лікі з Lost, пераведзеныя ў 16-ічную сістэму.

Далей гульцам заставалася злавіць значэнне лічыльніка (прааналізаваўшы тэставы токен) і згенераваць баявы токен, выкарыстоўваючы наступнае значэнне лічыльніка і падабраную на мінулым кроку соль.

Лічыльнік проста інкрыментаваўся пры кожным тэставым стрэле і кожныя 25 секунд. Аб гэтым мы нідзе не пісалі, гэта павінна было быць невялікай гульнявой нечаканасцю. Рабяты з гэтым вельмі хутка разабраліся і запусцілі мегатрон у баявым рэжыме.

Крок 5. Перапаліць лазерам вяроўку


Як гэта было

Тут ужо ўсё проста. Адпраўка баявога токена ўключала лазер у баявы рэжым, а пакой змянялася і прыходзіла ў "рэжым катастрофы", як мы гэта звалі ў агульным сцэнары:

  • Выключаўся ўвесь свет у пакоі
  • Кнопкі iot-дэвайсаў на сайце станавіліся недаступныя
  • Уключалася мігалка і гук сірэны
  • Чырвоная гіра падсвятлялася
  • На экране тэлевізара пачынаўся зваротны адлік да запуску лазера ў баявы рэжым

Мы далі на зваротны адлік паўтары гадзіны, каб усе, хто гуляў, паспелі ўключыць трансляцыю і ўбачыць фінал. І нездарма: пакуль я з заміраннем сэрца чакала гуку ўдару і якое разбіваецца шкла з суседняга пакоя, уся каманда, якая будавала квэст, не змаўляючыся, пачалі выязджаць на базу, каб убачыць фінал на свае вочы. Яны проста забягалі ў пакой і пачыналі абдымацца.

Тым часам у дыскардзе
Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Пасля заканчэння зваротнага адліку лазер уключыўся ў баявы і за дзве хвіліны перапаліў вяроўку - гіра паляцела прама ў акварыум. Перад ударам на экране загарлапаніла вар'яцкая капібара, у паніцы падняўшы маленькія лапкі.

Раз ужо ўся каманда сабралася там, мы знялі невялікі зварот усім, хто двое сутак змагаўся за фінал з дыскардзе і пайшлі адчыняць шампанскае:

Як мы пралічылі час запуску рэкламных відэаролікаў і палёт гіры?

Пасля дзясятка тэстаў перапальвання вяроўкі лазерам мы зразумелі, што гэта вельмі ненадзейная канструкцыя - полупроженная вяроўка становіцца танчэй, пад вагай гіры нацягвалася, мяняла размяшчэнне і лазер ужо не мог прарэзаць яе да канца.

Таму мы пайшлі іншым шляхам: задубліравалі перапальванне, абматаўшы вяроўку ніхромавай ніткай. Праз нітку пускалі ток, яна напальвалася дачырвана і перапальвала вяроўку прыблізна за 2 секунды - гэта давала нам дакладныя разуменне калі ўключаць гарлапанячую капібару, спыняць таймер запуску і запускаць рэкламны ролік:

Што ў нас не атрымалася?

У фінале з сістэмнага блока павінен быў пайсці густы дым, як пры пажары - мы прыгатавалі дымавыя шашкі, запальвалі іх аналагічнай выявай, але яны чамусьці не спрацавалі (верагодна з-за вады).

Хто ж пераможца?

Пераможцам выйшаў Аркадзь Аляксееў з Санкт-Пецярбурга – менавіта ён першым згенераваў тэставы токен і выйграў пакінутыя ў шродэры грошы ў памеры 134 000 рублёў.

Невялікае інтэрв'ю з Аркадзем.

Раскажы аб сабе, чым займаешся на працы?

Па адукацыі я бяспечнік, скончыў БІТ у ІЦМА. Працую фулстэк-вэб-распрацоўшчыкам на аўтсорсе. У школе быў алімпіяднікам, у тым ліку па праграмаванні і матэматыцы.

Як даведаўся пра гульню?

Зайшоў на Хабр проста пачытаць, убачыў артыкул, зацікавіўся.

Колькі гадзін гуляў, калі далучыўся?

Далучыўся ўвечар таго дня, калі выклалі артыкул (г.зн. за суткі да канца). Пасядзеў вечар і немалую частку наступнага дня.

Што спадабалася, што не?

У цэлым спадабалася ўсё (яшчэ б, я ж выйграў)), але крыху напружыў момант са званкамі. Ну тыпу тэлефанаваць і правяраць кожную версію неяк не вельмі, як мінімум ніякавата было - я ж разумеў, што там такіх яшчэ некалькі дзясяткаў тэлефануе, палова жартуе і спрабуе ў сац.інжынерыю.

Як ты зразумеў, як знайсці баявы токен да мегатрона?

Калі я зайшоў, ужо паспамілі сервер, патыкаў лямпачкі, знайшлі пароль ад адмінкі лазера, усякія паддамены і старонкі.

Яшчэ лёгка было знайсці профіль на гітхабе і гіст з каментамі. Адтуль відавочны працэс генерацыі токена і secret для яго ж. У такіх квэстах не трэба надта вынаходзіць имхо, бо можна патануць у кучы варыянтаў развіцця падзей; і адпаведна трэба ісці туды, куды цябе штурхае стваральнік квэста.

З улікам астатніх паддаменаў і тэставага сайта на тыльдзе, было ясна, што пасля падачы харчавання на лазер, трэба будзе падабраць токен. Адпаведна яшчэ ў той жа вечар я накідаў прыкладны запыт на ўключэнне лазера (на падставе 4х даступных формаў: 1 на працоўным сайце і 3 на тэставым/старым) і паспрабаваў пабруціць працоўнымі токенамі пачынальна з 42 (ну так, на дурня - раптам тамака ўжо ўсё уключана, а старонку з адпраўкай токена проста адкрыюць пасля ІНАЎ і ПІБ).

Не ўпэўнены, што запыт быў дакладны, бо правяраць не было часу (бо праверыць можна было толькі ўключэнні лазера), але да перабору токена я рыхтаваўся загадзя.

Яшчэ там была відавочная логіка з вэбсокетамі і кіраваннем прылад у app.js-файле. Там быў тоўсты намёк на a9 прыладу, пры адпраўцы power: true на якое сокет фарбаваўся. Я паспрабаваў усялякае на яго паадпраўляць — ці мала, там магла быць дадатковая прылада для разгадкі ІНАЎ, але без поспехаў.

Потым я яшчэ пабруціў астатнія айдышнікі побач з тымі дзесяццю, але ўсюды было unknown device. Яшчэ паспрабаваў трошкі ўсялякае, залезці на [электронная пошта абаронена], паадпраўляў усякае ў форме на старонцы прайс-ліста, пакапаўся з lasermasters, але ўсё без поспехаў. На наступны дзень сядзеў у чаце, гугліў усякае, потым усплыла стего-тэма і я параіўся з чалавекам стегсолв для карцінак і гіфок (але розумам разумеў, што 99% там нічога няма, бо гэта было б занадта + супярэчнасць з асноўнай лініяй квэста) .

Але ў выніку таксама пару гадзін сядзеў і капаўся ва ўсіх пікчах і гіфках. Яшчэ пару разоў тэлефанаваў з рознымі варыянтамі ІНАЎ, але міма. Потым ужо вырашыў падзабіць, але там падказку выклалі — і стала зразумела, што ў бліжэйшы час ІНАЎ знойдуць, што і здарылася. Потым ці то я, ці то нехта яшчэ (там не відавочна) адправіў power: true на а9-прыладу і лазер зарабіў, хоць магчыма тут сувязі няма і ён зарабіў проста пасля ІНАЎ. Увогуле, зайшоў у адмінку лазера і нямала здзівіўся, бо сервер сам дасылаў токен (а я тое ўжо рыхтаваўся бруціць). Стала відавочна, што токен тэставы, бо трансляцыя + разумны сэнс + я яго праверыў.

У кодзе была логіка адпраўкі працоўнага токена кудысьці натыфікацыяй, але, мабыць, альбо гэта быў няправільны код, альбо гэта было патрэбна для іншых частак сістэмы. Я накідаў скрыпт для атрымання бягучага працоўнага токена з бягучага тэставага і стаў сядзець на ф5, спрабуючы іх адправіць - з гэтым былі праблемы, бо ўсе ўвесь час тыкалі кнопку адпраўкі па магчымасці тым самым змяняючы токен. Потым яшчэ сайт упаў, лічыльнік скінуўся, але ўжо не сутнасць - праз некаторы час я адправіў працоўны токен. Па ідэі лічыльнік быў 58 і токен был 449a776938f7ce4cf19f8603045dca0f на момант актывацыі, калі не памыляюся. Уласна ўсё.

Потым у мяне яшчэ некалькі падгарэла ад каментаў а ля "ды гэта ўсё трывіяльна, ды пашанцавала просты". Ну, калі зайсці на старонку, падумаць хвілінку, напісаць скрыпт за пару хвілін, праверыць яго - то так, трывіяльна. Але я зрабіў гэта секунд за 10-20, і потым проста некалькі хвілін не мог адправіць токен.

Вядома, можна было паспрабаваць напісаць логіку для падхвата і адпраўкі аўтаматам, але гэта ўжо даўжэй і вялікая рызыка, плюс напэўна клаўд пачаў бы лаяцца. Вось з чым мне сапраўды пашанцавала, дык гэта з самім апошнім этапам - трохі алгарытмаў на хуткасць + хуткасць рэакцыі, гэта прамы маё. Калі б там было заданне непасрэдна з пентэста, я б не стаў першым, хутчэй за ўсё.

Але гэта яшчэ не канец

Мне зусім не церпіцца распавесці вам аб усёй выдатнай камандзе, якая будавала гэты квэст і ўсіх інжынерных рашэннях, якія яна знаходзіла. Але гэтая пасада і так атрымалася занадта велізарнай — таму пра гэта будуць асобныя артыкулы, так што stay tuned і падпісвайцеся на наш блог на Хабры.

Хто спыніў Шродэр або як трэба было праходзіць квэст са знішчэннем сервера

Крыніца: habr.com

Дадаць каментар