Il y a quelques jours, nous avons terminĂ© l'un des Ă©vĂ©nements les plus chargĂ©s Ă©motionnellement que nous avons eu la chance d'organiser dans le cadre de notre blog â un jeu en ligne de hacking avec destruction de serveur.
Les rĂ©sultats ont dĂ©passĂ© toutes nos attentes : les participants ne se sont pas seulement inscrits, mais se sont rapidement organisĂ©s en une communautĂ© soudĂ©e de 620 personnes sur Discord, qui a littĂ©ralement pris d'assaut la quĂȘte en deux jours sans interruption pour dormir.
Et voici comment cela s'est terminé :

Comment tout a commencé et de quoi s'agit-il ?
Le jeu a commencĂ© le 12 aoĂ»t, lorsque nous avons publiĂ© sur le blog une vidĂ©o oĂč un hacker dĂ©guisĂ© en crĂąne propose de jouer Ă un jeu, de dĂ©truire le serveur, de provoquer un court-circuit dans la piĂšce (ou un mini-incendie) et de rĂ©cupĂ©rer l'argent restant dans le shredder.
C'Ă©tait une quĂȘte en ligne : nous avons lancĂ© une diffusion en direct sur YouTube depuis une piĂšce que nous avons remplie d'appareils IoT, avec un serveur sous le lit (qui devait ĂȘtre dĂ©truit), et au-dessus du serveur, nous avions un aquarium suspendu avec un poids. Pour rendre le jeu plus palpitant, nous avons dĂ©cidĂ© d'Ă©tablir un prix de 200 000 roubles, que nous avons chargĂ©s dans le shredder et programmĂ© pour s'activer toutes les 60 minutes. Chaque heure, le shredder dĂ©vorait 1000 roubles â plus les joueurs arrĂȘteraient vite, plus ils gagneraient d'argent.

Construire cette quĂȘte Ă©tait en soi une quĂȘte â nous avons dĂ» nous nourrir d'une seule livraison et dormir quelques heures par jour directement dans la mĂȘme piĂšce. Mais ce qui Ă©tait le plus surprenant, c'Ă©tait d'observer le vol de la pensĂ©e des joueurs et leur engagement Ă©motionnel dans le processus.
HonnĂȘtement, l'ingĂ©niositĂ© des joueurs dans la rĂ©solution des Ă©nigmes a largement dĂ©passĂ© notre modeste projet : chaque minute libre, nous lisions le chat de Discord et dans certains cas, nous Ă©tions littĂ©ralement en larmes de rire en dĂ©couvrant ce que faisaient les joueurs et comment ils plaisantaient pendant le processus.
Sept personnes ont travaillé sans relùche sur le projet : un développeur back-end, un spécialiste du hardware, un véritable producteur de cinéma, un designer CG et deux coproducteurs inspirateurs.
Nous raconterons dans les prochains articles comment la quĂȘte a Ă©tĂ© rĂ©alisĂ©e d'un point de vue technique, et pour l'instant, je vais expliquer sa solution : comment il fallait hacker cette piĂšce pendant la diffusion. Nous allons Ă©galement rappeler la chronologie des Ă©vĂ©nements, ainsi que toutes les thĂ©ories folles illuminati provenant du chat Discord.
Que s'est-il passé pour les joueurs au début du jeu ?
Tous les objets de la piÚce étaient classés en trois catégories :
- Des dispositifs IoT simples à gérer, non liés aux jeux
- Des dispositifs de jeu pour passer le quest
- Ambiance

Nous avons installĂ© 8 Ă©lĂ©ments trĂšs simples Ă gĂ©rer : deux lampes, une guirlande, cinq lettres SOUCUL, chacune Ă©tant de couleur changeante. Tout cela pouvait ĂȘtre allumĂ©/Ă©teint directement depuis le site et les rĂ©sultats pouvaient ĂȘtre vus en temps rĂ©el â nous les avons rendus accessibles Ă tous les joueurs, quel que soit leur niveau technique.

Tout ce qui pouvait ĂȘtre allumĂ© depuis le site
Parmi les éléments de jeu importants nécessaires pour passer le quest, auxquels l'accÚs n'était pas si simple :
- Un serveur avec un couvercle ouvert et un aquarium au-dessus
- Une kettlebell suspendue de maniĂšre Ă briser l'aquarium
- Megatron 3000 â un puissant laser pointĂ© vers la corde qui tient la kettlebell
- Un puissant ventilateur qui se déclenchait sous charge sur le serveur
- Un tableau blanc sur lequel étaient inscrits le nom d'utilisateur et le mot de passe pour Megatron
- Un téléphone sur lequel on pouvait appeler et voir son appel en direct
- Un destructeur de papier qui dévorait un billet de 1000 roubles par heure
Comment le quest a été résolu
Je dirai tout de suite : le secret s'ouvrait assez facilement.
L'objectif du jeu Ă©tait d'arrĂȘter le destructeur de papier en provoquant un court-circuit dans la piĂšce. Pour cela, il fallait briser l'aquarium, en lançant la kettlebell et en noyant le serveur. La kettlebell Ă©tait maintenue par une corde, que Megatron visait. En prenant le contrĂŽle de Megatron, on pouvait couper la corde. Cela se faisait en 5 Ă©tapes simples :
Ătape 1. Charger le serveur dans la piĂšce
Par exemple, en envoyant des paquets avec une commande.
ab -r -n 10000 -c 100 -s 280 -l https://ws.ooosokol.ru/captchaL'indice était une captcha trÚs chargée sur .

En chargeant le serveur, sa tempĂ©rature augmentait et cela pouvait ĂȘtre suivi sur la surveillance, ouverte juste devant la camĂ©ra. Ensuite, le ventilateur s'activait, soulevant un lĂ©ger rideau sur le tableau blanc. Cela rĂ©vĂ©lait le nom d'utilisateur et le mot de passe d'accĂšs Ă la page de Megatron inscrits sur le tableau.

Et la page de contrĂŽle de Megatron pouvait ĂȘtre trouvĂ©e en vĂ©rifiant tous les certificats Ă©mis pour le domaine ooosokol.ru.
Sur le sous-domaine
megatron.ooosokol.ru la page de gestion de Megatron était accessible. Mais elle ne s'ouvrait pas tant que l'alimentation primaire n'était pas fournie au Megatron.
Tous ces étapes ont été rapidement discutées par les joueurs dans les commentaires de la diffusion sur YouTube. Ensuite, les défis étaient un peu plus difficiles et les joueurs ont créé un serveur Discord nommé RUVDS Hack Room pour continuer la discussion.
Ătape 2. Fournir l'alimentation primaire au Megatron
Tous les appareils intelligents gérés depuis le site (ces lampes que les joueurs allumaient et éteignaient en continu) avaient leurs propres identifiants.
Pour fournir l'alimentation primaire au Megatron et l'Ă©clairer en mĂȘme temps, il fallait trouver et activer un appareil cachĂ© sur la page de gestion du bureau.

Pour cela, il fallait regarder les identifiants des appareils et remarquer qu'il y avait 4 appareils, alors que seulement 3 étaient disponibles sur le site.

La page du Megatron devenait accessible en activant le 4Úme appareil et le laser s'éclairait. Cependant, il était impossible de tirer avec le laser car un message indiquait que le laser n'était pas disponible et un conseil : le disjoncteur du bureau avait sauté, il fallait appeler la société de gestion et demander de rétablir l'alimentation. Conseil sur la société de gestion

3. Appeler la société de gestion et demander de rétablir l'alimentation du Megatron
Selon le LOR, le Megatron ne pouvait pas tirer car le disjoncteur du bureau avait sauté. Seule la société de gestion pouvait rétablir l'alimentation, et il fallait les appeler et passer une identification en tant que propriétaire de la société.
Trouver le numéro de la société de gestion était facile - nous l'avons directement inscrit dans le footer.
Mais passer l'identification était beaucoup plus difficile.

Lorsque l'on appelait le numéro +74991130688, une opératrice répondait et demandait d'une voix monotone de donner le TIN de l'entreprise et le nom complet du propriétaire. Sans cela, elle refusait de rétablir l'alimentation et expliquait que c'était une simple centrale d'appels externalisée, qu'ils avaient 2000 clients et bureaux, et qu'il était impossible de trouver le bon sans ces informations.
Pour les joueurs, cela s'est avĂ©rĂ© ĂȘtre l'Ă©tape la plus difficile. Ils ont cherchĂ© le bon TIN et le nom complet du propriĂ©taire pendant presque deux jours, tandis que moi (dans le rĂŽle de l'opĂ©ratrice de la centrale) j'ai reçu plus de 400 appels pendant ce temps. Le tĂ©lĂ©phone sonnait toutes les 2-3 minutes.
Les gars faisaient tout ce qu'ils pouvaient. Ils ont tout essayé : déchiffrement du code source du site, recherche du propriétaire du site Sokolov, vérification sur les réseaux sociaux.
Ils ont cherché le TIN de différentes entreprises.
Ils cherchaient le numéro d'identification fiscale de différentes entreprises

Schéma de recherche presque complet
Ă un moment donnĂ©, ils ont mĂȘme appelĂ© avec un numĂ©ro masquĂ© â comme s'ils appelaient depuis le bureau de la sociĂ©tĂ© Sokol, indiquĂ©e dans le pied de page.
Nous avons alors découvert qu'un grand nombre d'entreprises portaient le nom Sokol. Pratiquement toutes ces entreprises ont été contactées par les appelants, mais cela n'avait rien à voir avec ce que le site a vécu. , chez qui nous avions réellement acheté le fameux Megatron il y a environ un mois.
D'abord, Discord a attaqué le support de Lasermasters.

Ensuite, ils ont rĂ©ussi Ă y trouver le compte de quelqu'un ! Pendant ce temps, le support de Lasermasters avait dĂ©jĂ cessĂ© d'ĂȘtre avare en mots.
Attention, éloignez les enfants de l'écran


Finalement, ils ont décidé de DDoS Lasermasters et leur site est tombé. Tout comme nous avons réussi à mettre à terre le site de Sokol, bien que nous l'ayons rapidement remis en ligne.
Au cours de l'enquĂȘte, les gars de Discord ont mĂȘme trouvĂ© l'acteur dont nous avions achetĂ© la photo dans une banque d'images, pour qu'il joue le rĂŽle de l'antagoniste principal, le propriĂ©taire de LLC AndreĂŻ Sokolov. Il s'est avĂ©rĂ© qu'il s'appelle Youri et qu'il n'est absolument pas au courant de la polĂ©mique dans laquelle il est impliquĂ©.

AndreĂŻ Sokolov, personnage du jeu

Youri, modĂšle
S'il savait comment il a fait en sorte que 600 personnes ne dorment pas pendant deux jours...)
Ensuite, ils ont commencĂ© Ă creuser spĂ©cifiquement sous moi, comme sous l'organisateur de la quĂȘte (ce qui aurait pu se terminer par un succĂšs si les gars avaient compris qu'ils pouvaient pirater mes canaux de travail).

J'ai mĂȘme un peu paniquĂ© quand ils ont mentionnĂ© mon prĂ©nom et mon numĂ©ro de contribuable. Mais j'ai Ă©tĂ© soulagĂ©e quand, dans le processus de la communication Ă©clatĂ©e, j'ai soudainement eu un frĂšre aĂźnĂ©, qui s'est avĂ©rĂ© ĂȘtre le directeur technique de Habra.
Mon cher frÚre, qui a également pris une part

Pendant ce temps, les hypothĂšses devenaient de plus en plus incroyables

Et cela a abouti à des théories illuminati.

Les thĂ©ories du complot les plus savoureuses concernaient Bob l'Ăponge, Harry Potter et le clignotement de la guirlande LED chinoise que nous avions mise Ă l'intĂ©rieur du boĂźtier du systĂšme.
D'oĂč viennent Bob l'Ăponge et Harry Potter, vous pourriez demander ? Nous avons insĂ©rĂ© leurs adresses sur la page de contact de Sokol et cela a suscitĂ© une multitude d'hypothĂšses dans la communautĂ© Discord. Bien que nous voulions simplement rendre hommage Ă nos Ćuvres d'enfance prĂ©fĂ©rĂ©es.

Cette référence sur la page ""
Et au final





Il s'avĂšre que dans la sĂ©rie, il y a bien des documents de Bob l'Ăponge. Ils Ă©taient appelĂ©s comme le numĂ©ro de contribuable.

Une des théories les plus complexes était que le clignotement de la guirlande chinoise contenait un message en code Morse.
Le scintillement a Ă©tĂ© enregistrĂ© et essayĂ© d'ĂȘtre dĂ©chiffrĂ©.



Parmi les théories plus simples, les gars essayaient de comprendre s'il y avait un indice caché dans les cartes.

En chemin, on nous comparait Ă â une Ă©valuation injustement Ă©levĂ©e, mais tout de mĂȘme agrĂ©able.


Les joueurs ont largement essayĂ© l'ingĂ©nierie sociale. On m'a appelĂ© en se faisant passer pour des agents du FSB, des pompiers, Sokolov lui-mĂȘme, son ex-femme et un garde qui, prĂ©tendument, se trouvait en bas. Ils disaient qu'un incendie avait Ă©clatĂ©, que quelqu'un Ă©tait coincĂ© dans l'ascenseur, et l'histoire la plus dĂ©chirante Ă©tait qu'un petit chien de l'appelant se trouvait prĂ©tendument dans un bureau en feu.

Il y a aussi eu des tentatives de corruption.
Peu Ă peu, des mĂšmes sont apparus dans le chat.
Voici quelques-uns.



Pendant ce temps, les usines restaient inactives.





Indice
L'argent dans le broyeur diminuait de plus en plus. Afin que le gagnant ait au moins quelque chose, nous avons décidé de faire un indice. De plus, en suivant les rÚgles du game design, juste avant la finale, de créer du suspense.
SĂ©parĂ©ment, nous avons publiĂ© une vidĂ©o sur le blog. Au dĂ©but, une sĂ©quence de Fight Club a Ă©tĂ© insĂ©rĂ©e â en rĂ©fĂ©rence Ă Tyler Durden, qui envisageait d'insĂ©rer le 25Ăšme cadre dans les films, tandis qu'il travaillait dans des cinĂ©mas.
Nous avons dĂ©cidĂ© d'appliquer la mĂȘme mĂ©canique et avons insĂ©rĂ© l'indice comme 25Ăšme cadre, comment le bon INN et le nom complet du propriĂ©taire.


AprĂšs cela, les gars ont compris trĂšs vite.
Ătape 4. Tirer au laser en mode non-combat.
Lors de la fourniture d'énergie par l'entreprise de gestion et aprÚs l'allumage des disjoncteurs, Megatron s'allumait et pouvait tirer en mode test. Un jeton pour le tir de test était déjà inséré dans le formulaire de saisie.

Un nouveau jeton Ă©tait gĂ©nĂ©rĂ© toutes les 25 secondes, il pouvait ĂȘtre utilisĂ© pour activer le laser pendant 10 secondes Ă une puissance de 10/255.
AprÚs cela, le laser devait se refroidir pendant 1 minute et pendant cette minute il était indisponible, ne prenant pas de nouvelles demandes de tir.
Cette puissance n'était absolument pas suffisante pour couper la corde, mais n'importe quel joueur pouvait tirer avec Megatron et voir le faisceau laser en action.
La réaction de la communauté a été plus que vive.

Mais tout le monde s'est vite calmé et a compris que ce n'était pas encore la fin du jeu.

Ensuite, la communauté a commencé à comprendre comment lancer le mode combat.
Brainstorming.


Des faux ont surgit sur Discord.
Nous ne savions pas qu'il y avait quelque chose d'écrit sur la jambe de la table pendant la diffusion.
La communauté est arrivée à l'étape 4. Comprendre comment les jetons sont générés : trouver le gist et générer un jeton qui inclut le laser en mode combat.
Le mode combat de Megatron utilise 100 % de la puissance du laser à 3 W. Cela suffit largement pour brûler la corde qui maintenait le poids pendant 2 minutes, briser l'aquarium et inonder le serveur.
Nous avons laissĂ© quelques indices sur : Ă savoir le code de gĂ©nĂ©ration du jeton, Ă partir duquel on pouvait comprendre que les jetons de test et de combat Ă©taient gĂ©nĂ©rĂ©s sur la base d'un mĂȘme indice de compteur. Dans le cas du jeton de combat, en plus de la valeur du compteur, un sel est Ă©galement utilisĂ©, qui a presque entiĂšrement Ă©tĂ© laissĂ© dans l'historique des modifications de ce gist, Ă l'exception des deux derniers caractĂšres.

Comme tout le monde l'a rapidement deviné, c'était 42.
Dans les commentaires du gist, il y avait un échange entre Andrei Sokolov et le développeur ('sage développeur', comme l'ont surnommé les gars sur Discord).
Dans cet échange, Andrei a envoyé l'un des jetons de combat, et le développeur a répondu que ce jeton avait été initialisé avec une valeur de compteur de 42.

En connaissant ces données, il était possible de parcourir les 2 derniers caractÚres du sel et de découvrir qu'on avait utilisé des chiffres de Lost, convertis en base 16.
Ensuite, les joueurs devaient attraper la valeur du compteur (en analysant le jeton de test) et générer un jeton de combat en utilisant la valeur suivante du compteur et le sel trouvé à l'étape précédente.
Le compteur s'incrĂ©mente simplement Ă chaque tir d'essai et toutes les 25 secondes. Nous n'avons Ă©crit cela nulle part, cela devait ĂȘtre une petite surprise de jeu. Les gars ont compris cela trĂšs rapidement et ont lancĂ© Megatron en mode combat.
Ătape 5. BrĂ»ler la corde avec le laser.

Comment cela s'est passé
Ici, tout est déjà simple. L'envoi du jeton de combat a activé le laser en mode combat, et la piÚce changeait pour entrer en 'mode catastrophe', comme nous l'avons appelé dans le scénario général :
- Tous les lumiÚres s'éteignaient dans la piÚce.
- Les boutons des appareils IoT sur le site devenaient inaccessibles.
- Un clignotant et un son de sirĂšne s'activaient.
- Le poids rouge était éclairé.
- Un compte à rebours commençait sur l'écran de la télévision jusqu'au lancement du laser en mode combat.
Nous avons donné un compte à rebours d'une heure et demie pour que tous ceux qui jouaient puissent se connecter et voir la finale. Et ce n'était pas en vain : alors que j'attendais avec impatience le son du coup et du verre brisé de la piÚce voisine, toute l'équipe qui avait créé le quest a commencé à se diriger vers la base, sans se concerter, pour voir la finale de leurs propres yeux. Ils entraient simplement dans la piÚce et commençaient à s'enlacer.
Pendant ce temps sur Discord


AprĂšs la fin du compte Ă rebours, le laser s'est activĂ© en mode combat et a coupĂ© la corde en deux minutes â le poids a volĂ© directement dans l'aquarium. Avant le coup, un capybara fou a hurlĂ© Ă l'Ă©cran, levant ses petites pattes dans la panique.
Puisque toute l'équipe était réunie là -bas, nous avons enregistré un petit message pour tous ceux qui ont lutté pendant deux jours pour rejoindre la finale sur Discord, et nous sommes allés ouvrir du champagne :

Comment avons-nous calculé le temps de lancement des publicités vidéo et le vol du poids ?
AprĂšs une dizaine de tests de coupure de corde avec le laser, nous avons compris que c'Ă©tait une construction trĂšs peu fiable â une corde Ă moitiĂ© coupĂ©e devenait plus fine, sous le poids du poids elle s'Ă©tirait, changeait de position et le laser ne pouvait plus la couper complĂštement.
C'est pourquoi nous avons suivi une autre voie : nous avons doublĂ© la coupure en enroulant la corde avec un fil nichrome. Un courant Ă©tait envoyĂ© Ă travers le fil, il devenait rougeoyant et coupait la corde en environ 2 secondes â cela nous donnait une comprĂ©hension prĂ©cise de quand activer le capybara hurlant, arrĂȘter le chronomĂštre de lancement et lancer la publicitĂ© :

Qu'est-ce qui n'a pas fonctionné ?
Ă la finale, de l'Ă©paisse fumĂ©e devait sortir de l'unitĂ© centrale, comme lors d'un incendie â nous avons prĂ©parĂ© des fumigĂšnes, les avons allumĂ©s de la mĂȘme maniĂšre, mais ils n'ont pas fonctionnĂ© (probablement Ă cause de l'eau).
Qui est le gagnant ?
Le gagnant est ArkadiĂŻ AlekseĂŻev de Saint-PĂ©tersbourg â c'est lui qui a gĂ©nĂ©rĂ© en premier un jeton de test et a gagnĂ© les 134 000 roubles restants dans le shredder.
Une petite interview avec ArkadiĂŻ.
Parle-nous de toi, que fais-tu dans la vie ?
Par ma formation, je suis spécialiste de la sécurité, j'ai terminé le BIT à l'ITMO. Je travaille comme développeur web full-stack en freelance. J'étais un élÚve olympique à l'école, y compris en programmation et en mathématiques.
Comment as-tu entendu parler du jeu ?
Je suis allé sur Habr juste pour lire, j'ai vu un article, ça m'a intéressé.
Combien d'heures as-tu joué, quand t'es-tu joint au jeu ?
Je me suis joint le soir du jour oĂč l'article a Ă©tĂ© publiĂ© (c'est-Ă -dire un jour avant la fin). J'ai passĂ© la soirĂ©e et une grande partie de la journĂ©e suivante.
Qu'est-ce qui t'a plu, qu'est-ce qui ne t'a pas plu ?
Dans l'ensemble, j'ai tout aimĂ© (forcĂ©ment, j'ai gagnĂ©)), mais le moment avec les appels Ă©tait un peu stressant. Appeler et vĂ©rifier chaque version, c'Ă©tait pas trĂšs agrĂ©able, au moins parce que c'Ă©tait gĂȘnant â je savais qu'il y en avait encore quelques dizaines qui appelaient, dont la moitiĂ© plaisantait et essayait de faire de l'ingĂ©nierie sociale.
Comment as-tu compris comment trouver le jeton d'authentification pour le mégatron ?
Quand je suis arrivé, le serveur avait déjà été spammé, les lumiÚres avaient été testées, ils avaient trouvé le mot de passe de l'interface admin du laser, divers sous-domaines et pages.
Il Ă©tait aussi facile de trouver un profil sur GitHub et un gist avec des commentaires. De lĂ , le processus de gĂ©nĂ©ration du jeton et de son secret Ă©tait Ă©vident. Dans ce genre de quĂȘtes, il n'est pas nĂ©cessaire d'inventer quelque chose d'extraordinaire en passant, car on peut se noyer dans une multitude de scĂ©narios ; il faut donc suivre la direction indiquĂ©e par le crĂ©ateur de la quĂȘte.
En tenant compte des autres sous-domaines et du site test sur Tilda, il Ă©tait clair qu'aprĂšs avoir alimentĂ© le laser, il faudrait trouver un jeton. Par consĂ©quent, le mĂȘme soir, j'ai esquissĂ© une requĂȘte approximative pour activer le laser (sur la base de 4 formulaires accessibles : 1 sur le site en service et 3 sur le site test / ancien) et j'ai essayĂ© de brute-forcer avec des jetons en commençant par 42 (juste par curiositĂ© â qui sait, peut-ĂȘtre que tout Ă©tait dĂ©jĂ activĂ©, et que la page pour envoyer le jeton s'ouvrirait simplement aprĂšs l'INN et le nom complet).
Je ne suis pas sĂ»r que la requĂȘte Ă©tait correcte, car je n'avais pas le temps de vĂ©rifier (car on ne pouvait vĂ©rifier que l'activation du laser), mais je m'Ă©tais prĂ©parĂ© Ă l'avance pour le brute-force du jeton.
Il y avait aussi une logique Ă©vidente avec les websockets et le contrĂŽle des appareils dans le fichier app.js. Il y avait un gros indice concernant le dispositif a9, qui plantait le socket lorsqu'on envoyait power: true. J'ai essayĂ© d'envoyer diverses choses Ă ce sujet â on ne sait jamais, cela pourrait ĂȘtre un dispositif supplĂ©mentaire pour dĂ©chiffrer l'INN, mais sans succĂšs.
Ensuite, j'ai aussi examinĂ© les autres ID Ă cĂŽtĂ© de ces dix, mais partout c'Ă©tait unknown device. J'ai aussi essayĂ© de chercher sur Google diverses choses, j'ai consultĂ© chsokolow@gmail.com, j'ai envoyĂ© diverses informations via le formulaire sur la page des prix, j'ai explorĂ© avec lasermasters, mais tout cela sans succĂšs. Le lendemain, je suis restĂ© dans le chat, Ă chercher diverses informations, puis un sujet de stĂ©ganographie a Ă©mergĂ© et j'ai consultĂ© une personne spĂ©cialisĂ©e dans la stĂ©gosolve pour les images et les GIFs (mais je savais dĂ©jĂ que 99% du temps il n'y avait rien, car ce serait trop + cela contredirait la ligne principale de la quĂȘte).
Mais finalement, j'ai aussi passĂ© quelques heures Ă fouiller toutes les images et GIFs. J'ai encore appelĂ© plusieurs fois avec diffĂ©rentes variantes de l'INN, mais en vain. Ensuite, j'ai dĂ©cidĂ© de laisser tomber, mais ils ont publiĂ© un indice â et il est devenu clair que dans un avenir proche, l'INN serait trouvĂ©, ce qui s'est effectivement produit. Ensuite, soit moi, soit quelqu'un d'autre (ce n'est pas clair) a envoyĂ© power: true Ă l'appareil a9 et le laser a fonctionnĂ©, bien que peut-ĂȘtre il n'y ait pas de lien et qu'il ait simplement fonctionnĂ© aprĂšs l'INN. En tout cas, j'ai accĂ©dĂ© Ă l'administration du laser et j'ai Ă©tĂ© assez surpris, car le serveur envoyait lui-mĂȘme le token (alors que je me prĂ©parais dĂ©jĂ Ă le brute-forcer). Il est devenu Ă©vident que le token Ă©tait un test, car la transmission + le bon sens + je l'ai vĂ©rifiĂ©.
Dans le code, il y avait une logique d'envoi d'un token fonctionnel quelque part avec une notification, mais apparemment, soit c'Ă©tait un code incorrect, soit cela Ă©tait nĂ©cessaire pour d'autres parties du systĂšme. J'ai esquissĂ© un script pour obtenir le token fonctionnel actuel Ă partir du token test actuel et je suis restĂ© sur F5, essayant de les envoyer â cela a posĂ© problĂšme, car tout le monde appuyait constamment sur le bouton d'envoi, modifiant ainsi le token. Ensuite, le site a Ă©galement plantĂ©, le compteur a Ă©tĂ© rĂ©initialisĂ©, mais ce n'est pas le principal â aprĂšs un certain temps, j'ai envoyĂ© le token fonctionnel. En thĂ©orie, le compteur Ă©tait Ă 58 et le token Ă©tait 449a776938f7ce4cf19f8603045dca0f au moment de l'activation, si je ne me trompe pas. En gros, c'est tout.
Ensuite, j'ai eu quelques frustrations Ă cause des commentaires comme « c'est tout trivial, c'est de la chance ». Eh bien, si l'on va sur la page, rĂ©flĂ©chit une minute, Ă©crit un script en quelques minutes, le teste â alors oui, c'est trivial. Mais je l'ai fait en 10-20 secondes, et ensuite j'ai juste mis plusieurs minutes Ă envoyer le token.
Bien sĂ»r, on aurait pu essayer d'Ă©crire la logique pour capturer et envoyer automatiquement, mais cela aurait pris plus de temps et comportait un grand risque, en plus le cloud aurait probablement commencĂ© Ă se plaindre. Ce avec quoi j'ai vraiment eu de la chance, c'est avec la toute derniĂšre Ă©tape â un peu d'algorithmes sur la vitesse + le temps de rĂ©action, c'est vraiment mon truc. S'il y avait eu une tĂąche directement issue d'un pentest, je ne serais probablement pas le premier.
Mais ce n'est pas encore fini
J'ai tellement hĂąte de vous parler de toute l'Ă©quipe formidable qui a construit cette quĂȘte et de toutes les solutions techniques qu'elle a trouvĂ©es. Mais ce post est dĂ©jĂ trop long â donc des articles sĂ©parĂ©s seront consacrĂ©s Ă cela, alors restez Ă l'Ă©coute et abonnez-vous Ă notre blog sur Habr.
Source : habr.com
