miércoles, febrero 25, 2015

Growth Hacking en Instagram: Cómo robar followers a las apps

Hace tiempo atrás hablaba acerca de los peligros que se pueden ocasionar al dar permisos a una aplicación en Facebook y sobre cómo una aplicación puede quedar vulnerable al contener el dominio de la misma un bug de XSS, ya que podría permitir a un tercero poder redireccionar un Access_Token a otro sitio. Siguiendo con este mismo tema, es decir, el de los permisos que se les dan a las distintas aplicaciones, hoy os vengo a contar un caso de una aplicación en particular de Instragram, en la que muchos usuarios han confiado, y le han dado los permisos necesarios para realizar las acciones básicas como dar me gusta, empezar a seguir a un usuario, dejar de seguir a otro, comentar etc...

Figura 1: Growth Hacking en Instagram: Cómo robarle followers a las apps

Una mala gestión de la seguridad en las apps de Instagram podría permitirte ser popular en Instagram sin ni si quiera postear fotos sexy.


Growth Hacking en servicios online

Las técnicas de Growth Hacking se hicieron populares tiempo atrás desde que algunas personas como Mark Zuckerberg, aprovecharon sus conocimientos de hacking para hacer popular sus servicios. Esto lo hizo en sus inicios el creador de Facebook para conseguir que sus portales tuvieran datos de los estudiantes a los que iba dirigido su servicio. Desde entonces, hay muchos que han buscado cómo hacer popular servicios en la red, como el caso de la empresa que vendía Likes de Facebook y que llegó a cambiarse el nombre por el de Mark Zuckerberg, o los que se dedican a vender followers en Twitter. Por supuesto, los equipos de seguridad de Twitter, Facebook, etcétera, intentan detectar este tipo de prácticas y bloquearlas.

Figura 2: El "empresario" que vendía likes que se cambió el nombre a Mark Zuckerberg

Por supuesto, muchos de esos crecimientos no valen nada más que para alimentar el ego o hacer un marketing, pero también sirven para manipular índices de popularidad y salir en otras recomendaciones que puedan atraer más followers reales. Todo cuenta cuando se quiere obtener la máxima difusión de algo en todas las redes. En el caso de hoy, vamos a ver un ejemplo en el que se puede ver cómo un fallo de seguridad en las apps de Instagram pueden hacer que cualquiera se aproveche de ellas, y los usuarios que han dado confianza a las apps acaben siguiendo a gente que no desean.

Un ejemplo de Growth Hacking en Instagram por culpa de una app

El desarrollador de esta app de Instagram en concreto, parece que se  ha olvidado que un Access_Token entregado desde una cuenta de Instagram es un código de acceso que se genera cuando un usuario le da permiso a una aplicación para realizar determinadas acciones y que si alguien ajeno a la aplicación consiguiera tal código, éste podría realizar esas acciones a su gusto, tomando control sobre las acciones permitidas por ese usuario.

Realizando unas investigaciones, se me cruzó la idea de que haciendo un poco de Hacking con Buscadores, podría llegar a generar una búsqueda con parte de la query que se utiliza cuando se quiere obtener ciertos datos con un Access_Token desde una API. Como era de esperar, la búsqueda arrojó bastantes resultados pero no solo eso… En los resultados obtenidos se pueden ver Access_Tokens en texto plano, todos indexados por Google y todos provenientes de un sitio en particular, algo bastante curioso.

Figura 3: Access_Tokens en los resultados de Google

Está claro que Instagr.in tiene problemas con la indexación en los buscadores al igual que le pasó a Facebook. Ingresé en algunos de los enlaces mostrados en los resultados de la búsqueda de Google - que como veis hay millones, y echándole un ojo al código de fuente pude localizar en el parámetro next_url de una de ellos un Access_Token. Lo curioso recargando la pagina aparecía otro distinto al anterior. Es decir, era como si dinámicamente se mostrase un Acces_Token distinto cada vez que se realiza una petición al sitio.

Figura 4: Access_Token de Instagram en el código fuente en el parámetro next_url

El único detalle es que no se obtiene el Access_Token del perfil el cual se navega, sino más bien uno aleatorio, o al menos eso es lo que parece. En cualquier caso, solo quedaba comprobar que estos códigos de Access_Token fueran validos y que no hubieran expirado o sido cancelados aún.

Figura 5: Validación del Access_Token en el API de Instagram para desarrolladores

Para ello me dirigí a la API para desarrolladores de Instagram, e hice un GET con el Access_Token obtenido sobre alguna de las acciones permitidas, devolviéndoseme como resultado un OK de parte de la API, pudiendo así, si hubiese querido, realizar acciones con la cuenta de quien fuera el usuario correspondiente a tal Access_Token. Esto es igual de malo, que cuando las apps llevan los tokens de las cuentas hardcodeados.

Prueba de Concepto de Growth Hacking con Instagram

Conociendo esto, se podría hacer un script que pida el código HTML de la pagina y una vez obtenido se la extraiga de ella el valor mostrado de Access_Token y así ir almacenando códigos en una base de datos. Luego, quien sabe, tal vez ofrecer un servicio de seguidores de Instagram, lanzar un mensaje masivo, darle presencia a algún perfil, etcétera.  He hecho un pequeño vídeo de prueba con este script en el que se puede ver cómo una cuenta, sin ningún comentario, va siguiente de Followers.


Figura 6: Prueba de Concepto de Growth Hacking en Instagram

Con esto visto, se podría hacer un proceso para construir una base de datos en la que se averigüe a quién pertenece cada Access_Token. Basta con crear una cuenta en Instagram sin ningún follower, usar el Access_Token para seguir a la cuenta y ver quién es el nuevo follower de esa cuenta. Hecho esto, se podría tener bien segmentada la base de datos con las propiedades de todas las cuentas que tal vez como tú, tus amigos o personas de empresas, han confiado los permisos de su cuenta a este tipo de aplicaciones. Ten cuidado con las aplicaciones que aceptas en Instagram o en cualquier otra de tus identidades.

Autor: Ariel Ignacio La Cono
Email: msignataur@hotmail.com
Twitter: @IgnacioLaCono

6 comentarios:

  1. Entonces utilizando ese script puedes ponerte nuevos followers, pero me pregunto si al darle a los followers ves a gente que te sigue, es decir, otros usuarios o simplemente se añade un número a los followers?

    ResponderEliminar
  2. Excelente video Chema, Saludos desde CentroAmerica

    ResponderEliminar
  3. Increible articulo, muchisimas gracias!

    Y le respondo a "Anonimo#1" el articulo dice, que

    "Con esto visto, se podría hacer un proceso para construir una base de datos en la que se averigüe a quién pertenece cada Access_Token. Basta con crear una cuenta en Instagram sin ningún follower, usar el Access_Token para seguir a la cuenta y ver quién es el nuevo follower de esa cuenta. Hecho esto, se podría tener bien segmentada la base de datos con las propiedades de todas las cuentas que tal vez como tú, tus amigos o personas de empresas, han confiado los permisos de su cuenta a este tipo de aplicaciones. Ten cuidado con las aplicaciones que aceptas en Instagram o en cualquier otra de tus identidades."

    Obvio que se puede saber quien es. Te recomiendo que leas que es un token. Saludos

    ResponderEliminar
  4. He tratado de implementar la misma prueba de concepto con nodejs, pero sin tener en cuenta proxys o la forma correcta para saltarse las restricciones de google o de la api de instagram.

    Lo he subido a github.com/davesnx/postureo.io para tratar de compartir y para recibir alguna idea para saltarse las restricciones.

    ResponderEliminar
  5. Pues entonces sería genial que guiáras un poco mas para poder realizar este proceso, dejas muchas cosas en el aire, y creo que hablo por muchos cuando digo que lo que buscan leyendo este apartado, son seguidores, no puedes dejar un link o hacer un video sencillo, u otra extencion de este apartado para realizarlo de manera exitosa, y que no quede en el aire la practica?

    Gracias, saludos.

    ResponderEliminar
  6. Creo que estaria muy bien que enseñases cosas básicas como que quieren decir las palabras usadas por la jerga informatica y tambien la jerga de el hacking y sus ramas para que muchos de los que nos estamos interesando por el tema al menos tengamos una base

    ResponderEliminar