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.
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
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.