Comprender y buscar vulnerabilidades de Open Redirect

La traducción del artículo se preparó antes del inicio del curso "Seguridad de las aplicaciones web" .








Una de las vulnerabilidades más comunes y aún pasadas por alto por los desarrolladores web es Open Redirect (también conocido como redirecciones y reenvíos no verificados). Un sitio web se considera vulnerable a Open Redirect si los valores de los parámetros (la parte de la URL después del "?") En la solicitud HTTP GET redirigen al usuario a un nuevo sitio sin verificar el sitio de destino. Dependiendo de la arquitectura del sitio vulnerable, la redirección puede ocurrir después de ciertas acciones, como iniciar sesión, y algunas veces puede ocurrir instantáneamente al cargar la página.



Un ejemplo de un enlace vulnerable se parece a esto: www.example.com/login.html?RelayState=http%3A%2F%2Fexample.com%2Fnext



En este ejemplo, el parámetro "RelayState" especifica a dónde redireccionar al usuario después de un inicio de sesión exitoso (en nuestro ejemplo es example.com/next ). Si el sitio no verifica el valor del parámetro "RelayState" por su legitimidad y seguridad, el atacante puede usar este parámetro para redirigir a la víctima a una página falsa creada por el propio atacante: www.example.com/login.html?RelayState=http%3A%2F % 2FEvilWebsite.com



Los desarrolladores han descuidado vulnerabilidades como Open Redirect, ya que no dañan directamente el sitio y no le dan al atacante la capacidad de robar directamente datos de la empresa. Sin embargo, esto no significa que Open Redirect no sea una amenaza. Uno de los principales usos de este tipo de ataque es realizar ataques de phishing efectivos y fiables.



Cuando un ataque de phishing usa Open Redirect, la víctima puede recibir un correo electrónico de apariencia plausible con un enlace que apunta al dominio correcto y familiar de la víctima. Lo que la víctima podría no notar es que hay parámetros en el medio de la URL que cambian el punto final de redireccionamiento. Para complicar la detección de Open Redirect, puede ocurrir una redirección después de que la víctima ingrese un nombre de usuario y contraseña en un sitio original. Los atacantes descubrieron que una forma eficaz de engañar a la víctima es redirigirla a un sitio falso después de ingresar su nombre de usuario y contraseña en el sitio real. El sitio falso se verá similar al sitio real y le pedirá a la víctima que vuelva a ingresar la contraseña. Una vez que la víctima lo haya hecho, el atacante anotará la contraseña,y la víctima será redirigida de nuevo al sitio real. Si todo se hace correctamente, la víctima pensará que cometió un error con la contraseña la primera vez y no se dará cuenta de que le robaron su nombre de usuario y contraseña.



El phishing se utiliza en la mayoría de los ataques dirigidos con éxito, así como también en los ataques oportunistas. Teniendo en cuenta lo común que es el phishing en la vida cotidiana, las vulnerabilidades como Open Redirect tampoco deben descartarse.



Sería injusto señalar un sitio o empresa en particular como vulnerable a Open Redirect, porque esta vulnerabilidad es común. En cambio, sería útil mostrar cuántos sitios de este tipo son y qué tan fáciles de encontrar.



Hacer una búsqueda en la web es una de las mejores formas de encontrar Open Redirect en su propio sitio y en otros lugares de Internet en general.



El motor de búsqueda de Google le brinda la flexibilidad de escribir consultas de búsqueda, incluidas las consultas que buscan específicamente las URL de las páginas.



Los siguientes operadores y caracteres especiales permitirán a cualquier usuario crear consultas etiquetadas que pueden ayudar a detectar Open Redirect:



  • allinurlEs el operador que le dice a Google que busque en la URL todas las palabras clave especificadas. Por ejemplo: allinurl:ReturnUrlbuscará todas las páginas web que tengan la parte ReturnUrl en la dirección.
  • site- un operador que dice que devuelva solo los resultados que se encuentran en un dominio o sitio web específico. Ejemplo: site:example.combuscar páginas web por example.com.
  • "" - las comillas dobles son caracteres especiales que se utilizan para indicar la búsqueda de una combinación exacta de palabras y caracteres entre comillas.
  • * - un asterisco es un comodín que representa una o más palabras.


Su uso nos permite encontrar indicios de un potencial Open Redirect: podemos buscar simultáneamente la presencia de los tokens "http" y "https" en los parámetros de la solicitud GET. Por ejemplo:



allinurl:%3Dhttps*
allinurl:%253Dhttps*
allinurl:%3Dhttp*
allinurl:%253Dhttp*


También podemos buscar palabras generales específicas relacionadas con la redirección en el área de parámetros de solicitud GET. Por ejemplo:



allinurl:"<keyword>=https"
allinurl:"<keyword>=http"
allinurl:<keyword>=https
allinurl:<keyword>=http
allinurl:<keyword>%3Dhttps
allinurl:<keyword>%3Dhttps*
allinurl:<keyword>%253Dhttps
allinurl:<keyword>%253Dhttps*
allinurl:<keyword>%3Dhttp
allinurl:<keyword>%3Dhttp*
allinurl:<keyword>%253Dhttp
allinurl:<keyword>%253Dhttp*
allinurl:<keyword>


En su lugar <keyword>, usaremos una de las siguientes palabras específicas de redirección: RelayState, ReturnUrl, RedirectUri, Return, Return_url, Redirect, Redirect_uri, Redirect_url, RedirectUrl, Forward, Forward_url, SuccessUrl, Redir, Exit_url, Destination . Esta no es una lista completa de palabras clave. Puede encontrar más analizando los resultados de las consultas de búsqueda de URL más generales en la sección GET Request Parameters.



Para búsquedas específicas, puede agregar «site:<domain_name>»al final de sus búsquedas de Google. Este método puede ayudarlo a encontrar vulnerabilidades de Open Redirect en su propio sitio.



Con una búsqueda tan simple, puede encontrar docenas de vulnerabilidades de Open Redirect en minutos. La lista de sitios vulnerables incluye sitios de bancos, corporaciones internacionales, empresas de confianza, proyectos favoritos y numerosos sitios de pequeñas organizaciones. Como una ventaja adicional, cada vez que un rastreador de Google se topa con sitios de Open Redirect, recibiremos resultados actualizados a través de consultas.



La mejor forma de evitar la vulnerabilidad Open Redirect es evitar la redirección de parámetros específicos del usuario o la solicitud GET. Si una redirección es inevitable, puede solucionarse validando el sitio de destino y limpiando su reputación con una lista blanca de URL validadas.



Le animo a que le cuente a sus amigos desarrolladores web sobre Open Redirect. Puede reenviarles este artículo, o incluso descubrir vulnerabilidades utilizando el método mencionado anteriormente e informar a la empresa con una descripción detallada del problema. ¡Hagámoslo más difícil para los ataques de phishing juntos!



Si desea compartir sus búsquedas de Google que funcionan para la detección de Open Redirect, puede hacerlo en los comentarios.






Más información sobre el curso







All Articles