Comment «pirater» RedBull

En fait, il est plus correct de nommer l’article «Comment gagner des points dans la compétition pour gagner un réfrigérateur RedBull entier». Soit dit en passant, nous avons déjà un tel réfrigérateur avec des boissons dans notre bureau.



Lorsque de nouveau des jus, des sodas et d'autres boissons ont été livrés au bureau, j'ai trouvé un dépliant annonçant le concours, dont l'essence était de terminer le jeu et le gagnant gagnerait un réfrigérateur pour les boissons énergisantes.

Le deuxième réfrigérateur ne nous ferait pas de mal - nous venons de nous agrandir et nous avons de nouveaux bureaux. J'ai donc suivi le lien et décidé de tenter ma chance, ma tentative a été un échec et je me suis retrouvé quelque part à la fin du classement. Le jeu devait passer par plusieurs niveaux du labyrinthe le plus rapidement possible.

Maintenant, vous devez mettre des lunettes de soleil, activer vpn, toutes sortes de procurations, etc.

Nous allons passer aux choses sérieuses


Comprenant parfaitement que tout jeu sur le web est une séquence de demandes, et connaissant le marché du développement, où il y a beaucoup d'amateurs, j'ai décidé de tenter ma chance dans l'autre sens et du coup je tombe sur des trous dans le jeu. Non pas que j'aie tellement besoin de ce réfrigérateur, il a juste suscité un intérêt sportif.

http://redbull.ru/work
Nous suivrons les demandes dans le navigateur, après quoi nous essaierons d'envoyer les mêmes demandes, mais avec les valeurs modifiées.



La première étape est une demande de démarrage du jeu:

https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/api/high-scores/games/8970c40a-98f0-4395-85c8-66177fb38af0/runs

En même temps, nous le remarquons dans le lien id = 8970c40a-98f0-4395-85c8-66177fb38af0.
Quelques fois, nous actualisons la page dans le navigateur, elle s'ouvre à partir d'une autre IP et dans un autre navigateur, ce paramètre ne change pas, nous supposons qu'il s'agit d'un identifiant constant pour le jeu.

Nous remarquons également que dans les paramètres d'en-tête du type de données

accept: 
application/vnd.api+json

En réponse à cette demande, nous obtenons la réponse:



{
    "data":{
        "attributes":{
            "finished_at":null,
            "game_day":114,
            "game_week":17,
            "score":null
        },
        "id":"4f89d56d-884e-42e8-909d-d1e7547cc1d8",
        "links":{
            "self":"https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/runs/4f89d56d-884e-42e8-909d-d1e7547cc1d8"
        },
        "relationships":{},
        "type":"runs"
    },
    "included":[],
    "links":{
        "self":"https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/runs/4f89d56d-884e-42e8-909d-d1e7547cc1d8"
    }
}

Dans la réponse, vous pouvez remarquer différents attributs et un de plus id = 4f89d56d-884e-42e8-909d-d1e7547cc1d8, ce qui semble être notre identifiant personnel pour le jeu.

Nous commençons le jeu.



Nous observons les demandes. On voit que rien de nouveau n'apparaît, c'est-à-dire aucune étape du passage du déclencheur du jeu. Juste au cas où, j'ai vérifié, peut-être que quelque chose se passe sur les sockets Web - il est également vide là-bas.



En fin de match, nous sommes quelque part dans le classement, mais nous ne sommes pas les premiers à être très tristes. Pour l'instant.
Nous regardons la console et voyons que 2 demandes supplémentaires ont été envoyées, mais l'une d'elles était pour recevoir des articles, l'autre pour obtenir la note des joueurs. Il y a peu d'utilité ici, nous nous souvenons de la note de la première place - 61454667.

Cliquez sur le bouton pour enregistrer le résultat.



Une autre demande d'URL a été envoyée

https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/api/high-scores/games/8970c40a-98f0-4395-85c8-66177fb38af0/runs/4f89d56d-884e-42e8-909d-d1e7547cc1d8/submit

avec paramètres

{
    "data":{
        "id":"8970c40a-98f0-4395-85c8-66177fb38af0",
        "type":"runs",
        "attributes":{
            "score":11041900
        }
    }
}

Il devient évident que le lien est formé à partir de l'identifiant statique du jeu et de l'identifiant de notre session. Dans les paramètres, le compte est transféré, qui sera enregistré par nous et participera à la notation.



À l'étape suivante, une page avec un formulaire s'ouvre, qui est chargée dans un iframe. Nous remarquons que notre identifiant de session est impliqué dans le lien:
https://redbull.jotform.com/93071907238864&runid=4f89d56d-884e-42e8-909d-d1e7547cc1d8&runscore=11041900&redirect=https://maze.redbull.com

Après avoir soumis le formulaire, nous recevons une confirmation.



Maintenant, nous répétons toutes les mêmes demandes, mais pas via le navigateur.

J'utiliserai Postman.

Nous envoyons une demande de

https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/api/high-scores/games/8970c40a-98f0-4395-85c8-66177fb38af0/runs




Reçu la réponse:

{
    "data": {
        "attributes": {
            "finished_at": null,
            "game_day": 114,
            "game_week": 17,
            "score": null
        },
        "id": "f95dad7c-eecf-4d3a-88e9-a32661a484e4",
        "links": {
            "self": "https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/runs/f95dad7c-eecf-4d3a-88e9-a32661a484e4"
        },
        "relationships": {},
        "type": "runs"
    },
    "included": [],
    "links": {
        "self": "https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/runs/f95dad7c-eecf-4d3a-88e9-a32661a484e4"
    }
}

Le plus important ici

id = f95dad7c-eecf-4d3a-88e9-a32661a484e4

Maintenant, formez un lien pour obtenir la note. Nous aurons besoin de notre identifiant de session et d'un résultat qui sera supérieur au record actuel 61454667. Pour l'esthétique, prenez le premier chiffre du nombre 2 * pi, juste un peu plus que le record.

Envoyer une demande

https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/api/high-scores/games/8970c40a-98f0-4395-85c8-66177fb38af0/runs/f95dad7c-eecf-4d3a-88e9-a32661a484e4/leaderboard?score=62831853&filter[interval]=none



Dans la réponse, nous voyons que nous sommes déjà les premiers de la liste, maintenant nous allons enregistrer le résultat.

Nous enverrons une demande à

https://rb-prjct-crtns-gamebackend-eu.herokuapp.com/api/high-scores/games/8970c40a-98f0-4395-85c8-66177fb38af0/runs/f95dad7c-eecf-4d3a-88e9-a32661a484e4/submit

Dans cette demande, il est important de spécifier les attributs des en-têtes.





Super! Tout s'est bien passé, a reçu la confirmation du résultat. Vous devez maintenant envoyer vos coordonnées afin que RedBull nous contacte.

Pour ce faire, ouvrez simplement un lien dans le navigateur avec le formulaire avec notre identifiant de session.

https://redbull.jotform.com/93071907238864&runid=f95dad7c-eecf-4d3a-88e9-a32661a484e4&runscore=61454667&redirect=https://maze.redbull.com



Remplir le formulaire.

Nous envoyons.



Nous obtenons une confirmation!

Le concours est déjà terminé, il s'est déroulé jusqu'au 31 janvier 2020.

PS Au moment de la publication, le dessin était terminé, pendant la campagne nous n'y avons pas participé, nous n'avons pas revendiqué la victoire. Toutes les descriptions sont fournies à titre informatif uniquement. Aucune valeur commerciale ou autre n'a été recherchée par ces actions.

All Articles