Ir al contenido principal

Como un simple cambio de nombre en una fanpage me llevó con un bypass en el sistema linkshim de Facebook

Como un simple cambio de nombre en una fanpage me llevó con un bypass en el sistema linkshim de Facebook 

Todo inició con el rediseño de marca de un noticiero digital, en el cuál se cambió el nombre, se cambió el logotipo, se cambiaron los nombres de twitter, el usuario de twitter, el instagram, pero OH! al llegar a facebook y hacer el cambio de url de dominio no hubo problema, pero el querer cambiar el nombre inició la pesadilla...

"No podemos cambiar tu nombre de dominio debido a que puede ser engañoso para tus usuarios, etc... etc... etc...".

Eso es lo primero que me llegó al intentar cambiar el nombre de dominio, pero para mi suerte, vi un botón de "apelación".

¡Que bien! Puedo apelar y dar mis razones de por qué estoy cambiando el nombre. 

Y así empiezo: 

"
Querido FB,

Recientemente la empresa xxxx está en un rediseño de marca e imagen, por lo que agradecería puedan ayudarme con el cambio de nombre en el sitio, ya se hizo el cambio de url, pero solo estamos en espera del cambio de nombre.

De antemano, muchas gracias
"

Respuesta:

"No podemos cambiar tu nombre de dominio debido a que puede ser engañoso para tus usuarios, etc... etc... etc...".

Bueno, de nuevo, apelación: 

"
Querido FB

El cambio de marca es necesario, debido a los cambios que hubo en...

Agradecería puedan revisarlo y ayudarme en esta situación
"

Respuesta: 

"No podemos cambiar tu nombre de dominio debido a que puede ser engañoso para tus usuarios, etc... etc... etc...".

Tratemos de nuevo, apelación: 

"
Puedo enviar los papeles que sean necesarios para comprobar el cambio de marca por completo, tenemos campañas de pautas pagadas informando a nuestros usuarios, etc.. etc...

Muchas gracias
"

Respuesta: 

"No podemos cambiar tu nombre de dominio debido a que puede ser engañoso para tus usuarios, etc... etc... etc...".

Para esta respuesta -varios días en lo escrito arriba- ya estaba un poco desesperado, así que empecé a buscar algunos números de FB México, datos de personas, OSINT o LinkedIN ayudan de manera grandiosa en esto. 

Al estar marcando, empecé a revisar el historial de mensajes que tenía, ya eran varios tickets y muchas apelaciones en cada uno de esos tickets, con explicaciones detalladas, cambios de nombre, ejemplos, el por qué y demás cosas, en sí, todo un repertorio de links en los mensajes enviados a Facebook. 

En ese momento, vi que los mensajes enviados en la plataforma interna de facebook contenían un token, yo había visto ya el sistema de redirecciones de Facebook, el cual te avisa cuando sales del sitio, pero nunca había revisado más. 

El sistema de redirecciones vi que tenía dos variables que recibía, una la variable que se refiere a la url que va a redireccionar y otra la variable h, que me imaginé era un token para autentificación de facebook y así saber como manejar ese enlace. Me percaté que los enlaces generados en su plataforma no mostraban un anuncio de redirección, es decir, te llevaba de forma automática, por lo que empecé a probar. 

El sistema en mención es el linkshim de Facebook -eso lo supe después, al final pongo por qué-

Al entrar a https://l.facebook.com/l.php?u=URLORIGINAL&h=TOKENORIGINAL  el sistema te redirecciona de manera directa, es decir, el linkshim supongo hace una consulta a la base de datos y verifica que ese token generado esté validado con esa URL; para de esta forma te redireccione en automático a la URL, supongo el backend del sistema hace un análisis previo del enlace, para verificar que no tenga spam, virus o cualquier otra cosa, y así se pueda confiar en los enlaces que redirecciona ese sistema. 

Si se utiliza algo como https://l.facebook.com/l.php?u=OTRAURL&h=ELTOKENORIGINAL el sistema no te redirecciona en automático, te dice que estás saliendo de Facebook y tienes que dar clic en aceptar, para que así te redireccione a la URL que te está mostrando, hasta ahí va todo muy bien. 

Los tokens recibidos por h, son parecidos a esto: 

XX2Y3P1hqa0YbzMlodoHhJchMaGIFTj8fw3JzybiJO-_ASC2kI43qOxeMj8SoBEv1X46z3jueP6wPFimiXxAupyyy7tskbiHySXEm9lO3a-ypt4

Hasta ese momento pensé que las validaciones del sistema estaban muy bien y no daban problemas, pensé que el enlace de facebook te redirecciona de manera automática y no daría problemas, hasta que recordé una de las cosas que más sustenta a Facebook: La publicidad. 

Busqué un enlace de publicidad contenido en el sitio de Facebook, me salió uno de amazon y de mercadolibre, con algunos productos de informática -jeje-, entonces lo primero que hice fue copiar el enlace: 

https://l.facebook.com/l.php?u=http%3A%2F%2Fsitio.fueradeFB.com.mx%2Fjm%2FPmsTrk%3Fword%3DPerif%25C3%25A9ricos%26utm_source%3Dfacebook%26utm_medium%3Ddisplay%26utm_campaign%3DDPA%2B%257C%2BMLM1655%2B%257C%2BMonitores%2By%2BProyectores%26utm_term%3Dpms-word%253APerif%25C3%25A9ricos%26utm_content%3D%257B%2527MLM1648%2527%253A%2527Computaci%25F3n%2527%252C%2527MLM1655%2527%253A%2527Monitores%2By%2BProyectores%2527%252C%2527MLM1661%2527%253A%2527Otros%2527%257D%26go%3Dhttps%253A%252F%252Farticulo.mercadolibre.com.mx%252FMLM-627899258-soporte-pwr-executive-office-p-2-monitores-lcd-escritorio-_JM%26tool%3D97963361%26utm_id%3Dpms-tool%253A97963361&h=-----------------------------J3a6vkKDn2LITlvVPmre073w5U_PDmF9qrwI4t9TkEDyFo5jjHv8eGltvlmN-5Bi_p14r0SWH0_ncAs57npUfCaBrUwivCs7CmYQXMlze61oyAfo8HNOB8oAGzXmD18OWaSZgLF7gTzNVw1l2OuIkIdajq9AiMUahqQyMNEbG9A2xDIarcSqDboLLwa1GzZs0cK4yW3dl9LP3OzLH1qbcAOgcb17JU0NbcL6DEjZ-XJH7vTCeOHQ6zfy5lG4KA98_FgQrPFsdXExyisIUq-Swy7UTDtM3Ws4IfIRQa85blq5g6LPS241xZ7nKsJ4OOSviUAPiaf4k1KuN0zSOTDiko4JgPvnqHhLc__z0-------------------------------

La publicidad que se muestra en Facebook pasa por el mismo linkshim que manejan, l.facebook.com/l.php, pero NUNCA he dado clic en una publicidad que me diga que estoy saliendo de Facebook, y claro, a los anunciantes no les convendría, lo importante aquí es llegar al destino final de la manera más fácil. 

Como podemos ver, la URL también contiene la variable u y la variable h, entonces también se hace una validación, pero si vemos el token -o lo que yo veo como token-, es mucho más largo que uno simple de cualquier otro enlace, supongo mediante esta variable dan seguimiento a la campaña, estadísticas, mediciones, pesos, cobros, que se yo. 


-----------------------------J3a6vkKDn2LITlvVPmre073w5U_PDmF9qrwI4t9TkEDyFo5jjHv8eGltvlmN-5Bi_p14r0SWH0_ncAs57npUfCaBrUwivCs7CmYQXMlze61oyAfo8HNOB8oAGzXmD18OWaSZgLF7gTzNVw1l2OuIkIdajq9AiMUahqQyMNEbG9A2xDIarcSqDboLLwa1GzZs0cK4yW3dl9LP3OzLH1qbcAOgcb17JU0NbcL6DEjZ-XJH7vTCeOHQ6zfy5lG4KA98_FgQrPFsdXExyisIUq-Swy7UTDtM3Ws4IfIRQa85blq5g6LPS241xZ7nKsJ4OOSviUAPiaf4k1KuN0zSOTDiko4JgPvnqHhLc__z0-------------------------------

Más del triple de longitud que el token simple listado arriba, los ---- yo los agregué, claro. 

Si tomamos este token y lo reemplazamos en la URL generada para un visita de cualquier sitio, el linkshim de Facebook nos hace una redirección limpia, es decir un BYPASS.

https://l.facebook.com/l.php?u=CUALQUIERURL&h=ELTOKENDELAPUBLICIDADEXTRAIDOARRIBA

Así es como quedaría la URL que puede reenviar a cualquier sitio sin avisar ni nada, simplemente te lleva. 

Al reportar esto a Facebook, me comentan que no es un problema de seguridad, ya que su "sistema linkshim" hace validaciones en URLs con contenido malicioso, me ponen como ejemplo que trate de hacer una redirección al sitio: http://evilzone.org/ 



De hecho, al intentar hacer la redirección a ese sitio, aparece que el sitio puede ser malicioso y no redirecciona en automático, peeeeero les respondo al momento al equipo de seguridad de Facebook:

Creo que el ataque/bypass tiene que ser visto un poco más allá y tienes que revisar todas las perspectivas para usar cualquier token para una redirección en automático, por ejemplo: 

https://l.facebook.com/l.php?u=UNAURLNUEVA&h=ELTOKENDELAPUBLICIDADEXTRAIDOARRIBA

Al ingresar en ese enlace, el sistema de linkshim te está enviando directamente al sitio que tienen "bloqueado" http://evilzone.org/

Acto seguido de enviar ese mensaje, busco el sistema linkshim -en este momento lo conocí, después de que lo mencionaron en la respuesta-, claro, el primer enlace lleva a un post donde se describe que es el sistema, como funciona, que recibe dos variables U y H, y lo más importante que les envío en otro mensaje: 

"Adding as Matt Jones said in this article -i just see it searching linkshim-: 

'if someone sees a facebook.com url, they are likely to trust it without regards to the redirect URL itself.'"

https://www.facebook.com/notes/facebook-security/link-shim-protecting-the-people-who-use-facebook-from-malicious-urls/10150492832835766/


La url final que hace una redirección en automático es esta: 


Después de eso, recibo la respuesta de Facebook de que es complicado hacer un escaneo profundo en url que redireccionen, aunque, creo que eso desvirtúa un poco del tema, pues el problema principal es que se puede hacer una redirección con cualquier token que ellos tengan en la publicidad.



Creo que no es problema ponerla, ni mostrar la forma en que facebook puede hacer redirecciones en automático, ya que ellos mismo dijeron que no era un problema de seguridad, y bueno, si a su forma de ver, que un sitio de facebook redireccione en automático a cualquier sitio con un token "falseado" no es problema, pues entonces creo que tampoco es problema publicarlo. 

Y así fue como mi búsqueda de cambio de nombre en una fanpage, me llevó a encontrar un bypass en el sistema linkshim de facebook. 

Pd. El nombre de la fanpage pude cambiarlo, con un error de validación en su sistema, pero eso ya lo platicaré después, no es importante. 

Pd2. Tal vez bloquearon este token, pero usen cualquier token de publicidad con la URL que ustedes quieran y les hará una redirección. Si usan goo.gl incluso podrá redireccionar a URLs "bloqueadas" por ellos. 

Pd3. Unas horas después de la publicación de esta nota, Facebook quitó los enlaces linkshim de su publicidad, por el momento van con enlaces directos.


Saludos! 

Komtec1

Comentarios

Uriel ha dicho que…
Buenas! Muy inquietante tu experiencia. Como desarrollador, me ha gustado. Lo que realmente me ha llevado aquí es no poder cambiar el nombre de la fanpage por ser drástico y susceptible al engaño. Veo que lo conseguiste! Puedes compartir la experiencia? Cualquier ayuda es bienvenida! Gracias!
Unknown ha dicho que…
Como conseguiste cambiar el nombre? Por favor
Thesalia ha dicho que…
Hola! Sería de gran ayuda que nos comentes cómo pudiste cambiar el nombre de usuario finalmente. Graciass!!
Uriel ha dicho que…
Finalmente lo conseguí. Tienes que hacerlo por partes, poco a poco. Si tu nombre es compuesto y tiene más de una palabra, ves agregándolas poco a poco, en cada cambio de nombre. Saludos!
Komtec1 ha dicho que…
Hola Uriel!

Justamente así es como realicé el cambio de nombre, si la página es -por ejemplo- "Materiales y Diseño" Y el nuevo nombre tiene que ser "Publicaciones Tecnológicas", entonces haces el primer cambio a "Materiales y Diseño / Publicaciones Tecnológicas" y el siguiente cambio ya podrás hacerlo quitando la palabra Materiales y Diseño y quedará solo el deseado.

Entradas populares de este blog

Integrar API de Google Maps, archivos kml, kmz y otras fumarolas :D

Ya que andamos en eso de la posteada ahora les voy a dejar un pequeño manual sobre como integrar la API de maps (google) dentro de nuestro código, hay varia documentación en la página developers de google, pero realmente lo que uno busca cuando pone en google: "integrar api de maps" es ver un ejemplo claro y directo para que se pueda entender de mejor forma. Así que pues ya comentada la información de arriba les paso a dejar un ejemplo. Lo primero que tenemos que poner en nuestro código es la llamada a la API de maps: < script type = " text/javascript " src = " http://maps.googleapis.com/maps/api/js?sensor=false&language=es " > < / script > En este caso la variable sensor está en false, esto nos indica que no hay un dispositivo gps que pueda tomar la ubicación (se pone generalmente en true cuando es para aplicación movil, llámese celular o tableta) El lenguaje declaramos español, esto es para los menús que se van a most

Solución [fix] a hamachi Logging in .. failed, busy

Hola! Aquí con una pequeña entrada, pero que a más de uno le será útil. Tengo hamachi instalado en varias máquinas, pero en una precisamente al reiniciar, algunas veces me da este problema: usuarioserver@server:~$ sudo hamachi login [sudo] password for usuarioserver: Logging in .. failed, busy Lo busqué en internet y la "solución" que dan, es reinstalar hamachi, y para los que han instalado hamachi en ubuntu, saben que no es una opción, pues se tendrían que hacer estos pasos:  sudo apt-get remove logmein-hamachi sudo dpkg -i logmein-hamachixxx.deb sudo apt-get install -f Para lo cual (siempre) es molesto hacer esos pasos, y algunas veces la configuración se llega a perder.  Para solucionar ese problema, basta con hacer un:  sudo /etc/init.d/logmein-hamachi force-reload Esto forzará el reinicio de hamachi, y así después hacen:  sudo hamachi login Y listo, el problema de failed busy desaparece y los deja loguear bien en la red de hama

[Anotaciones] Importar DB MySQL con archivos frm/ibd

Primero, vamos a extraer las consultas para crear las tablas, lo podemos hacer con el siguiente comando> mysqlfrm --server=user:pass@localhost --port 3307 --diagnostic /ruta/de/los/archivos/data/nombredebase/*.frm Esto nos regresa todos los CREATE que tengamos para las tablas, guardar todo el resultado. Creamos la base de datos, con el mismo nombre que se tenía anteriormente. Ejecutamos la consulta que nos regresó el comando mysqlfrm, si nuestra versión de mysql es mayor a 5.6, es importante hacer este cambio:  ENGINE=InnoDB DEFAULT CHARSET=utf8; por  ENGINE=InnoDB ROW_FORMAT=compact CHARSET=utf8; Es decir, se remplaza DEFAULT por ROW_FORMAT=compact, realmente no se por qué, pero me llevó como una hora dar con el error, espero quien lea esto le sea más facil. Una vez que tengamos las tablas creadas, ejecutamos lo siguiente: ALTER TABLE nombredetabla1 DISCARD TABLESPACE; ALTER TABLE nombredetabla2 DISCARD TABLESPACE; ALTER TABLE nombredetabla3 DISCARD TABLESPAC