“Het Laatste Nieuws: Belgisch kampioenschap klikken” omzeild

Een maand terug kwam Het Laatste Nieuws af met het Belgisch kampioenschap klikken. Het kwam er op neer om zo vlug mogelijk te klikken.

We nemen even een kijkje achter de schermen van het spel. Het spel is geschreven in Flash/Actionscript. Deze zorgt het grafische gedeelte. Flash draait in de browser, dus de gebruiker is niet afhankelijk van de snelheid van de server. Hij is eerder afhankelijk van de snelheid van z’n eigen pc. Pas op het einde van het spel wordt dan ook de score naar de server gestuurd.

Het grappige aan de implementatie van dit spel, is dat ze de data via een standaard SOAP webservice doorsturen. Met een eenvoudige sniffer als Firebug, kan de SOAP-url teruggevonden worden:
http://klikken.hln.be/klikkenservice.asmx

We zien meteen de methode AddScore(int ScoreValue,  string HASH). Deze doet exact wat we denken dat ze doet. Ze geeft de score door. Uiteraard moet er eerst ingelogd worden, dit kan met de methode LoginUser(string Username, string Password). Dit geeft een object van het type UserInfo terug en deze kan dan gebruikt worden om de methode AddScore() op te roepen. De enige beveiliging die voorzien is de de HASH-waarde bij het toevoegen van de score. Hiervoor moeten we in de broncode van het Flash-spel duiken, met een swf-decompiler zien we hetvolgende:

De hash-waarde bestaat dus uit een concatenatie van de UserID, de score en de GUID.
De score kennen we. De UserID en de GUID zijn twee elementen die terug te vinden zijn in het UserInfo-object.

Het is dus een kwestie van een score te kiezen, in te loggen met LoginUser(), de hash te berekenen en de score naar de server te sturen met AddScore(). Verder zijn er geen beveiligingsmaatregelen zoals tijdscontrole, browsercontrole of dergelijke voorzien!

Andere methodes zoals GetLiveScores() kunnen gebruikt worden om een schatting te krijgen van het aantal spelers die per dag meegedaan hebben met het spel (= de schiftingsvraag die HLN vroeg).

Oja, SOAP webservices kan men heel eenvoudig toevoegen via .NET.. Een automatisatietool schrijven is dus een kwestie van minuten.

2 thoughts on ““Het Laatste Nieuws: Belgisch kampioenschap klikken” omzeild

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s