systemadmin.es > LAMP y web > Trampas en rankings de juegos en Flash

Trampas en rankings de juegos en Flash

A veces se intenta hacer publicidad original que pueda entretener para dar una buena imagen de una determinada marca, pero si no se hace adecuadamente puede llegar a perjudicarla. Creo que es el caso de una universidad catalana con un determinado juego en Flash.

El problema que permite falsear los datos del ranking del juego que veremos a continuación es el mismo que tenían unos juegos en flash de un periódico cuando estaba en la universidad (el Wireshark aún se llamaba Ethereal), por lo que parece que este tipo de fallos con el tiempo no desaparecen.

El flash propone un conjunto de juegos a superar en el menor tiempo posible:

Pantalla de inicio del juego en Flash

Pantalla de inicio del juego en Flash

La verdad es que los juegos están bien para pasar un rato con el típico de las 5 reinas, buscar un patrón, un puzzle con una puerta y un reloj que aún no entiendo que pretenden que hagas:

Capturas del juego

Capturas del juego

Una vez finalizados los juegos te da la opción de introducir tu nombre para aparecer en el ranking:

Introducción de los datos como DEADBEEF

Introducción de los datos como DEADBEEF

Usando la palabra DEADBEEF como patrón conocido podemos hacer una captura con el Wireshark para ver como se mandan los resultados:

POST visto desde el Wireshark

POST visto desde el Wireshark

Como vemos se trata solo de un POST a un determinado fichero el cual parece que esta claro que se trata de un PHP con los siguientes parámetros:

name=DEADBEEF
time=2%3A25%2E503
totalInt=145503

Las variables son las siguientes:

  • name: Se trata de los datos introducidos por el usuario
  • time: Indica el tiempo en cal como se imprime por pantalla, teniendo en cuenta que %3A corresponde a dos puntos y %2E a un punto
  • totalInt: En este caso consta de dos partes. Por un lado se tratan de los segunos de la cadena anterior. En el caso del ejemplo 2:25 pasado a segundos corresponde a 2*60+25=145 y por el otro lado el 503 se añade al final de la cadena, dando por resultado 145503

El valor 503 entiendo que no se trata ni siquiera de un valor de control, sino de un valor aleatorio que añaden para que quede “bonito” con el tiempo en segundos. Para probarlo podemos hacer la petición con el curl y los parámetros que hemos capturado con el tcpdump:

$ curl -d 'name=DEADBEEF&time=0%3A45%2E503&totalInt=45503' www.webjuegoflash.com/php/sendscore.php
result=ok

A continuación en el ranking podremos ver si hemos conseguido añadirlo:

ranking trucado

ranking trucado

Es evidente que es solo un juego sin ninguna consecuencia pero para mi me de una mala imagen de una universidad que ofrece carreras de informática y telecomunicaciones al igual que masters y posgrados, aunque realmente ellos seguro que no tienen nada que ver con este desarrollo concreto.

Hay que decir que ya comuniqué dicho bug (por lo simple que es yo no lo catalogaría ni como problema de seguridad) y enseguida me respondieron perfectamente y muy amablemente (un 10 en eso).

7 comments to “Trampas en rankings de juegos en Flash”

  1. Hola, ¿cómo estás?.
    ¿Qué solución propones para evitar el “cheating”?
    Aclaro que mi pregunta va en una buena, sin ánimos de ofender, sino de aprender 🙂

    Saludos!

  2. Para empezar sería cifrar la comunicación y verificar el cliente con un certificado y luego ya sería complicarlo haciendo que el tiempo lo calculase el server y no el cliente.

    Igualmente se podría llegar a falsear ya que tenemos el código del cliente que deberíamos desensamblar pero no sería tan trivial como el POST de este caso.

  3. Por cierto, muy interesante tu blog.
    He encontrado excelentes artículos!.

  4. Muchas gracias!

  5. Eso pasa mucho en las universidades aunque se impartan ciertas carreras relacionadas con las TIC xD Pero bueno, lo triste es cuando se trata de algo relacionado con la seguridad, les avisas y ni se molestan en corregirlo… Allá ellos 🙂

    Por cierto, felicidades por tu web. Me gusta mucho!

  6. Que buen post, sabes, la inseguridad con los puntos en juegos en flash es bastante comun. Hasta en Facebook XD

  7. Demasiado común 🙂

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>