Bypass Redirect Check Google / Youtube (Saltar La Confirmación De Redireccionamiento En Google Y Youtube)


El uso de redirectores en páginas webs es relativamente normal, y sus usos principales son:
  1. Avisar al usuario que está saliendo del dominio principal.
  2. Recolectar datos de navegación de los usuarios.
  3. Llevar al usuario a una página llena de publicidad para que hagas click en un entre que está entre dos banners de publicidad.

El caso 1 en general lo usan grandes sitios webs para evitar que nos redirijan a sitios webs maliciosos o con phishing sin previo aviso, como lo hace Google en este caso:
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=15&url=https%3A%2F%2Fwww.blackploit.com

Imagen 1: caso 1 de redireccionamiento
El caso número 2 es usado por grades plataformas para poder separar las operaciones con la analítica del sistema. El caso emblema es Twitter que usa su acortador t.co para redirigir todo el tráfico y poder analizar el comportamiento de sus usuarios, ejemplo:
http://t.co/J3LuvnLZ3X --> https://www.blackploit.com

Usar un acortador es la mejor forma de hacer un redirector ya que así te aseguras de que nadie pueda ingresar en la URL un parámetro malicioso, no como en el ejemplo del caso 2.

En el caso 3 existen muchos ejemplos de acortadores y redirectores que usan esta estrategia para obtener dinero por clicks en publicidad.

Imagen 2: ejemplo caso 3
Hoy nos vamos a centrar en el caso 1, específicamente en los redirectores de Google y Youtube, y ver que tan difícil es poder saltar la confirmación de redirección.

Potenciales usos maliciosos de un redirector

Existen diferentes formas de mal utilizar un redirector, algunas son:
  1. Redirigir a una web con contenido malicioso o phishing, haciendo creer al usuario final que está en el dominio del redirector.
  2. Ocultar el Referer original de un enlace.
  3. Incrementar falsamente las estadísticas de un sitio web.
En el caso 3 uno puede hacer un script que visite un enlace con redirector, y la página web objetivo va empezar a tener un incremento de visitas del sitio web del redirector, aumentando de forma artificial la fuente de tráfico en un sitio web.

Análisis

Google en su redirector principal, cada vez que haces click en un enlace del buscador, crea un redirector con la URL objetivo (https://www.blackploit.com/ en el ejemplo de a continuación) y crea 2 tokens (ved y usg) que cambian para evitar que cualquiera pueda aumentar de forma artificial los clicks (que son usados entre otras cosas para posicionar los resultados de búsquedas), en caso que los parámetros ved y usg no sean válidos, te mandarán a una página con el mensaje de redirección de la imagen 1:
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&
ved=2ahUKEwiAkoTo8pbiAhUBA9QKHYSBAPkQFjAAegQIBhAC& 
url=https%3A%2F%2Fwww.blackploit.com%2F& 
usg=AOvVaw2YsoR0eglfSf7B9Vk2ZRzS

¿Cómo podemos predecir estos tokens?, No tengo la menor idea, pero no es necesario ya que Google tiene un whitelist de dominios que no requieren los tokens de verificación.

¿Cuáles son estos dominios?, Obviamente google.com y todos sus TLDs (google.es, cl, net, org, etc.) y todos sus subdominios, por tanto la regla es *.google.{com, cl, es, ... ,TLDs}.

Por ejemplo:
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=15&
url=https%3A%2F%2Fdrive.google.com
En este ejemplo nos redirige a drive.google.com sin mensajes de redireccionamiento.

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=15&
url=https%3A%2F%2Ffake.google.com
En este ejemplo nos redirige  a fake.google.com sin mensajes de redireccionamiento, siendo que fake.google.com no existe, lo que confirma la regla vista anteriormente.

Por lo tanto debemos simplemente encontrar un solo redirector en *.google.com que no tenga reglas o mensajes de redireccionamiento y podemos saltar todos los redirecotres de Google, es así como encontramos el redirector de Hangouts:
https://hangouts.google.com/linkredirect?dest=https%3A%2F%2Fwww.blackploit.com%2F
Este redirector simplemente nos envía a la URL que queramos sin mensajes ni avisos.

Por lo tanto ya tenemos todo lo que necesitamos, simplemente necesitamos codificar la URL paso a paso donde se pueden ayudar con esta web.

Codificamos la web objetivo:
https://www.blackploit.com
|
v
https%3A%2F%2Fwww.blackploit.com

La agregamos al redirector de Hangouts y la volvemos a codificar:
https://hangouts.google.com/linkredirect?dest=https%3A%2F%2Fwww.blackploit.com
|
v
https%3A%2F%2Fhangouts.google.com%2Flinkredirect%3Fdest%3Dhttps%253A%252F%252Fwww.blackploit.com

Por último la agregamos al redirector de Google:
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=15&url=https%3A%2F%2Fhangouts.google.com%2Flinkredirect%3Fdest%3Dhttps%3A%2F%2Fwww.blackploit.com

Listo! tenemos un enlace https://www.google.com/... que redirige a https://www.blackploit.com/ saltándose el filtro de Google.

Este mismo método se puede aplicar en otros redirectores, acá les mostraré dos ejemplos uno en accounts.google.com y otro en accounts.youtube.com, ambos tienen el mismo comportamiento:
https://accounts.youtube.com/accounts/SetSID?ilo=1&ils=a4cc1b7ed445598%20f16cef403bb3b0311&ilc=0
&continue=https%3A%2F%2Fhangouts.google.com%2Flinkredirect%3Fdest%3Dhttps%3A%2F%2Fwww.blackploit.com
Y:
https://accounts.google.com/signin/v2/identifier?uilel=3&service=youtube&passive=true&hl=es-419
&continue=https%3A%2F%2Fhangouts.google.com%2Flinkredirect%3Fdest%3Dhttps%3A%2F%2Fwww.blackploit.com
&feature=sign_in_button&app=desktop&hl=es-419&next=%2F&flowName=GlifWebSignIn&flowEntry=ServiceLogin

Estos dos casos son más interesantes ya que cuando el usuario está logeado en una cuenta Google redirige sin mostrar mensajes a la web objetivo, en el caso de que no esté logeado en Google, le pide usuario y contraseña y luego lo redirige a la web objetivo sin problemas ni avisos.

Imágen 3: redirección cuando no estamos logeado en Google.

Resumen

(1)
https://hangouts.google.com/linkredirect?dest=https%3A%2F%2Fwww.blackploit.com

(2)
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=15&url=https%3A%2F%2Fhangouts.google.com%2Flinkredirect%3Fdest%3Dhttps%3A%2F%2Fwww.blackploit.com

(3)
https://accounts.youtube.com/accounts/SetSID?ilo=1&ils=a4cc1b7ed445598%20f16cef403bb3b0311&ilc=0
&continue=https%3A%2F%2Fhangouts.google.com%2Flinkredirect%3Fdest%3Dhttps%3A%2F%2Fwww.blackploit.com

(4)
https://accounts.google.com/signin/v2/identifier?uilel=3&service=youtube&passive=true&hl=es-419
&continue=https%3A%2F%2Fhangouts.google.com%2Flinkredirect%3Fdest%3Dhttps%3A%2F%2Fwww.blackploit.com
&feature=sign_in_button&app=desktop&hl=es-419&next=%2F&flowName=GlifWebSignIn&flowEntry=ServiceLogin

Reporte

Se envió el reporte a Google y el bot que responde dijo que era un comportamiento completamente previsto y que incluso no era un defecto, si no, una característica.

Reporte a Google
Incluso mandan un enlace para informarnos más: https://sites.google.com/site/bughunteruniversity/nonvuln/open-redirect

En ese enlace dice claramente que en los redirectores  se considera vulneravilidad:
  • Content Security Policy bypass
  • Referrer check bypass
  • URL whitelist bypass
Yo no sé si entiendo mal o el bot necesita un arreglo, pero ya se reportó y el bot tiene la última palabra.

Conclusión

Sin duda se pueden encontrar muchos más casos, aquí presento 3 que no me costó mucho trabajo en encontrar.

Puede parecer que esta no es una vulnerabilidad, pero se supone que cuando uno accede a un enlace de un dominio importante, este no debería redirigir a un sitio web malicioso.

Por otro lado existen redirectores que tienen en su whitelist de sitios de confianza a google.com, por lo cual esos redirectores también son bypasseables.

Personalmente ahora tengo más ojo y no me fio 100% de enlaces de Google.


[+] Salu2!




Via: feedproxy.google.com
Bypass Redirect Check Google / Youtube (Saltar La Confirmación De Redireccionamiento En Google Y Youtube) Bypass Redirect Check Google / Youtube (Saltar La Confirmación De Redireccionamiento En Google Y Youtube) Reviewed by Anónimo on 9:52 Rating: 5