Wie man RedBull "hackt"

In der Tat ist es richtiger, den Artikel "Wie Sie sich Punkte im Wettbewerb sichern, um einen ganzen RedBull-Kühlschrank zu gewinnen" zu nennen. Einen solchen Kühlschrank mit Getränken haben wir übrigens schon in unserem Büro.



Als wieder Säfte, Soda und andere Getränke ins Büro geliefert wurden, fand ich einen Flyer, in dem für den Wettbewerb geworben wurde. Der Kern bestand darin, das Spiel zu beenden, und der Gewinner würde einen Kühlschrank für Energy-Drinks gewinnen.

Der zweite Kühlschrank würde uns nicht schaden - wir haben gerade erweitert und wir haben neue Büroräume. Also folgte ich dem Link und beschloss mein Glück zu versuchen, mein Versuch war ein Fehlschlag und ich landete irgendwo am Ende der Bewertung. Das Spiel sollte so schnell wie möglich mehrere Ebenen des Labyrinths durchlaufen.

Jetzt müssen Sie eine Sonnenbrille aufsetzen, VPN, alle Arten von Proxies usw. einschalten.

Kommen wir zur Sache


Da ich genau wusste, dass jedes Spiel im Web eine Folge von Anfragen ist, und den Entwicklungsmarkt kannte, auf dem es viele Amateure gibt, beschloss ich, mein Glück in die andere Richtung zu versuchen, und stolperte plötzlich über Löcher im Spiel. Nicht dass ich diesen Kühlschrank so sehr gebraucht hätte, er hat nur ein sportliches Interesse bekommen.

http://redbull.ru/work
Wir werden Anfragen im Browser verfolgen, danach werden wir versuchen, die gleichen Anfragen zu senden, jedoch mit den geänderten Werten.



Der erste Schritt ist eine Aufforderung, das Spiel zu starten:

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

Gleichzeitig bemerken wir im Link id = 8970c40a-98f0-4395-85c8-66177fb38af0.
Ein paar Mal aktualisieren wir die Seite im Browser, sie wird von einer anderen IP-Adresse geöffnet und in einem anderen Browser ändert sich dieser Parameter nicht. Wir gehen davon aus, dass dies eine konstante Kennung für das Spiel ist.

Wir bemerken auch, dass in den Datentyp-Header-Parametern

accept: 
application/vnd.api+json

Als Antwort auf diese Anfrage erhalten wir die Antwort:



{
    "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"
    }
}

In der Antwort können Sie verschiedene Attribute und ein weiteres erkennen id = 4f89d56d-884e-42e8-909d-d1e7547cc1d8, das unsere persönliche Kennung für das Spiel zu sein scheint.

Wir starten das Spiel.



Wir beobachten über Anfragen. Wir sehen, dass nichts Neues erscheint, dh keine Phasen des Durchgangs des Spielauslösers. Nur für den Fall, ich habe nachgesehen, vielleicht geht etwas auf Web-Sockets - es ist dort auch leer.



Am Ende des Spiels sind wir irgendwo in der Rangliste, aber wir sind nicht die ersten, die sehr traurig sind. Eine Weile.
Wir schauen auf die Konsole und sehen, dass zwei weitere Anfragen gesendet wurden, aber eine davon war für den Empfang von Artikeln, die andere für die Bewertung der Spieler. Es gibt hier wenig Nützliches, wir erinnern uns an die Bewertung des ersten Platzes - 61454667.

Klicken Sie auf die Schaltfläche, um das Ergebnis zu speichern.



Eine weitere URL-Anfrage wurde gesendet

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

mit Parametern

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

Es wird deutlich, dass die Verbindung aus der statischen ID des Spiels und der ID unserer Sitzung besteht. In den Parametern wird das Konto übertragen, das von uns gespeichert wird und an der Bewertung teilnimmt.



In der nächsten Phase wird eine Seite mit einem Formular geöffnet, das in einen Iframe geladen wird. Wir stellen fest, dass unsere Sitzungs-ID an dem Link beteiligt ist:
https://redbull.jotform.com/93071907238864&runid=4f89d56d-884e-42e8-909d-d1e7547cc1d8&runscore=11041900&redirect=https://maze.redbull.com

Nach dem Absenden des Formulars erhalten wir eine Bestätigung.



Jetzt wiederholen wir alle gleichen Anfragen, aber nicht über den Browser.

Ich werde Postman verwenden.

Wir senden eine Anfrage für

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




Erhielt die Antwort:

{
    "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"
    }
}

Am wichtigsten hier

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

Bilden Sie nun einen Link, um die Bewertung zu erhalten. Wir benötigen unsere Sitzungs-ID und ein Ergebnis, das über dem aktuellen Datensatz 61454667 liegt. Nehmen Sie für die Ästhetik die erste Ziffer der Zahl 2 * pi, nur etwas mehr als der Datensatz.

Eine Anfrage senden

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



In der Antwort sehen wir, dass wir bereits die ersten in der Liste sind, jetzt werden wir das Ergebnis speichern.

Wir senden eine Anfrage an

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

In dieser Anforderung ist es wichtig, die Attribute der Header anzugeben.





Super! Alles ging in Ordnung, erhielt eine Bestätigung des Ergebnisses. Jetzt müssen Sie die Kontaktdaten senden, damit RedBull uns kontaktiert.

Öffnen Sie dazu einfach einen Link im Browser mit dem Formular mit unserer Sitzungs-ID.

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



Füllen Sie das Formular aus.

Wir senden.



Wir bekommen eine Bestätigung!

Der Wettbewerb ist bereits beendet, er lief bis zum 31. Januar 2020.

PS Zum Zeitpunkt der Veröffentlichung war die Ziehung abgeschlossen, während der Kampagne haben wir nicht daran teilgenommen, wir haben keinen Sieg beansprucht. Alle Beschreibungen dienen nur zu Informationszwecken. Mit diesen Maßnahmen wurden keine kommerziellen oder sonstigen Werte verfolgt.

All Articles