Endomondo: Sportwedstrijden winnen door in de zetel te liggen

Inleiding

endomondo-iphone-new-design-v2

Voor diegenen die niet weten wat Endomondo is: het is een sport community die gebasseerd is op real-time GPS tracking, waarmee je al je trainingen mee kunt bijhouden (afstand, snelheid, grafieken,…) op je gsm. Er worden ook sportwedstrijden gehouden waarbij je leuke prijzen kan winnen (zoals een samsung galaxy s5). Je neemt deel aan deze wedstrijden door middel van je eigen trainingen.

Blijkbaar is het niet zo moeilijk om trainingen te “faken”, en hiermee sportwedstrijden mee te winnen.

Ik heb dit getest en er screenshots van genomen om het te bewijzen. Hierna heb ik mij direct uitgeschreven uit de sportwedstrijden, dit om geen kwaad bloed te zetten bij de echte sporters. Hoewel ik toch mijn twijfels heb bij de mensen die in de top staan: ze hebben elk uur van de dag (24u lang) een training gedaan waardoor ze zo een hoge plaats hebben in de competitie. Dit lijkt me vrij verdacht omdat je toch niet dag en nacht kan trainen?

Waarschijnlijk hebben ze dezelfde techniek gebruikt die ik vandaag in dit artikel ga beschrijven.

 

Proof of concept

Hier volgen enkele screenshots waar je de absurde scores kan zien die ik heb ingediend met maar liefst 4 enkele trainingen.

(zoals eerder gezegd zal je me niet meer in de high-scores vinden omdat ik me heb uitgeschreven uit de wedstrijden)

printscreen1

 

friet

 

De workouts kan je hier bekijken (als mijn fake account nog bestaat tegen de tijd dat je het leest):

http://www.endomondo.com/workouts/user/16152897

Methode

Ik heb gewoon het verkeer tussen mijn gsm en het internet onderschept. Ik heb hiervoor “charles proxies” gebruikt, maar eigenlijk kan je ook andere tools hiervoor gebruiken.

 

 charles

Het indienen van een training is dus gewoon een eenvoudig linkje dat wordt ingediend. Je kan deze link gewoon kopieren en aanpassen.

http://api.mobile.endomondo.com/mobile/track?authToken=TOKENWEGGELATENw&workoutId=2014-05-18%2016:04:54%20GMT%2B2&sport=0&duration=0.02&calories=0.00&hydration=0.00&goalType=BASIC&deflate=true&extendedResponse=true&audioMessage=true

Je kan dus gewoon waardes aanpassen en opnieuw indienen. Telkens wanneer je een andere datum neemt, wordt er een nieuwe training aangemaakt.

Als we het opsplitsen wordt het al wat duidelijker:

http://api.mobile.endomondo.com/mobile/track?authToken=TOKENWEGGELATEN

&workoutId=2014-05-18%2016:04:54%20GMT%2B2

&sport=0&

duration=0.02

&calories=0.00

&hydration=0.00

&goalType=BASIC

&deflate=true&extendedResponse=true&audioMessage=true

Het zijn dus gewoon parameters die je kan aanpassen, door gewoon de link aan te passen. Je kan zelfs parameters extra toevoegen.

Nu moet je nog gewoon de aangepaste link plakken in je webbrowser, en je bent klaar.

Je krijgt zelfs antwoord met daarin het workout-ID.

Besluit

De sporters die vanboven in de lijst staan door elk uur van de dag te sporten (zonder te slapen), lijken mij gewoon fake trainingen. Door een simpel php script te maken (en dit in combinatie met cronjobs), kan je zorgen dat je hele tijd trainingen indient bij endomondo. Je kan zelfs zover gaan door bij elke training meerdere updates te versturen waarbij je de afstand en tijdsduur verhoogt om zo “realistische” trainingen te krijgen.

Endomondo heeft dit eigenlijk zelf gezocht door het simpele mechanisme om trainingen in te dienen.