13 may. 2019

Saltar la confirmación de redireccionamiento en Google y Youtube [Bypass Redirect Check Google / 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 (imágen 1).

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 artificialmente 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 (en este ejemplo https://www.blackploit.com/) 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 el caso de que los parámetros ved y usg no sean válidos, te mandarán a una página con un mensaje de redirección (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 redirectores 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 de 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 a la web objetivo sin mostrar mensajes, 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!



Author & Editor

Ingeniero Civil en Computación (Universidad de Chile FCFM) y Diplomado en Gestión y Evaluación de Proyectos TI (Universidad de Chile FEN). Actualmente trabajo como Project Manager en varios proyectos y como asesor tecnológico para empresas.

0 Notaciones:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.

Labels

0-day (12) 1337day (1) 8.8 (2) Adobe Acrobat (1) Android (2) Anonimato (1) Anonymous (9) BackDoor (2) BackTrack (15) badUSB (1) Base64 (1) Black Hat (7) BlackHat (1) Blackploit (25) Brute Force (3) Bug (106) Bypass Password (1) Bypass Redirect (1) C99 Shell (1) Carding (1) CheatSheet (15) Chilean Way (1) Conference (10) Cryptsetup (1) CSRF (1) DDoS (11) DEF CON (3) DEFCON (7) Diapositivas (1) Diseño Web (1) Distro Linux (27) Documental (2) DoS (2) Drupal (1) DuckDuckGo (1) E-zine (18) Ekoparty (1) Escaneo (4) España (1) Exploit (64) Ezine (1) Facebook (1) Fast-Info (44) FBI (1) Ficheros Binarios (1) Firefox (4) Flash (2) Forense (9) Fuerza Bruta (11) Fuga de Datos (1) GhostShell (1) GNU/Linux (4) Google (2) Guía (1) Hack T00LZ (130) Hack Tips (63) Hacked (6) Hacking (18) Hacking Hardware (5) HashCat (1) Herramientas (121) HighSecCON (1) Humor Geek (13) Infografía (1) Ingeniería Social (5) Inj3ct0r (1) Internet Explorer (3) Java (7) JavaScript (2) Kali (3) KitPloit (1) Leaks (21) Linux OS (79) LulzSec (1) Mac OS (10) Magazine (1) Malaware (3) Malaware Tools (12) Malware (1) Man in the Middle (15) Manuales (3) MD5 CRACK (4) Metasploit (57) MSSQL (1) MySQL (6) MySQL CRACK (1) Nmap (6) Nmap NSE (2) Noticias (193) NTLM CRACK (1) Ofuscar (5) OpenSolaris OS (1) OpenSSL (1) ORACLE (1) OWASP (3) Paper (10) PDF (7) PenTest (14) Perl (2) Phearking (13) Phishing (3) PHP (13) phpMyAdmin (1) PoC (1) Premios Bitacoras (1) Presentaciones (11) PRISM (1) Privacidad (2) Programación (12) Programas Linux (41) Programas Windows (41) Pwned (1) Python (5) Reconocimiento (5) Ruby (2) s (1) Scripts (7) Seguridad (145) Seguridad Web (140) Seguridad Wireless (19) Sensitive Data Exposure (2) SHA1 CRACK (1) Shellshock (1) Slides (1) Spoofing (1) Spyware (1) SQLi (19) SQLi Tools (7) SQLMap (2) SSH (1) Textos (74) Tips (57) Troyanos y Virus (11) Trucos (7) Trucos Win (7) Turiales (56) Tutoriales (18) Twitter (1) Ubuntu (2) Underc0de (1) UnderDOCS (1) Unlock (1) URL Redirection (1) UXSS (1) vBulletin (1) Video (48) Virtualización (2) Web T00LZ (17) Wifislax (1) Wikileaks (1) WikiRebels (1) Windows OS (66) Wireless Tools (13) XSS (16) Youtube (1)

 
biz.