Nueva Vulnerabilidad Cross-Site Scripting (XSS) en Banco Santander

santander-chile-650x400

Desde hace un tiempo que Banco Santander ha expuesto a sus clientes y usuarios a una serie de incidentes de seguridad, como por ejemplo solicitud de claves por parte de los ejecutivos hacia nuevos clientes, vulnerabilidades que permitieron el acceso a parte del código fuente, fallas de seguridad que facilitaban el phishing, etc. Varias de estas vulnerabilidades fueron expuestas en este blog, luego que no se tuviera respuesta por parte del banco, como se puede ver en esta lista de posts.

Actualmente, en el año 2015, Santander demuestra que no ha aprendido nada, desde el punto de vista de la gestión como en el ámbito técnico. Continuan ignorando las alertas de seguridad que se denuncian y por otro lado continuan entregando un servicio que no cumple con un mínimo de seguridad.

Las vulnerabilidades se repiten año tras año, por ejemplo en este caso mostraré un Cross-Site Scripting (XSS) que afecta a la Banca Personas, un problema de seguridad que es facil de detectar, facil de mitigar y facil de explotar.

Además de mostrar este nuevo XSS, mencionaré otra vulnerabilidad que está dentro del TOP 10 OWASP.

Para entrar en contexto, el timeline es el siguiente:

10 de Mayo: Se descubre la vulnerabilidad.

14 de Mayo: Se reporta vía email, a un subgerente que anteriormente me habia contactado a nombre del “grupo de seguridad de la información”.

15 de Mayo: Se reporta vía twitter.

19 de Mayo: Desde la cuenta de twitter @SantanderChile responden “Hola Fernando, te agradecemos el reporte que nos has enviado. Estamos realizando el análisis correspondiente. ¡Saludos!“. En el reporte enviado vía email, solo les indiqué que había detectado un par de vulnerabilidades en el sistema de banca personas, que si necesitaban mas detalles me respondieran el correo, entonces nose qué estaran analizando si no les envié nada.

25 de Mayo: Se insiste vía twitter y se reporta a otra dirección de correo, esta vez al departamento de Comunicaciones Externas, que tambien me habían contactado anteriormente por temas de seguridad.

3 de Junio: La vulnerabilidad persiste. Se hace el disclosure.

 

Estos son los correos enviados a distintas cuentas de “comunicaciones” y subgerentes:

14 de Mayo

mail14mayo

25 de Mayo

mail25mayo

 

No obtuve respuesta por ninguno de esos correos.

Entrando en detalle, la vulnerabilidad Cross-Site Scripting afecta a la URL https://www.santander.cl/transa/productos/tt/transferencias/PopUpconfirm.asp, mediante la variable “data1” enviada mediante GET es posible inyectar código HTML y JavaScript, permitiendo modificar el sitio de manera temporal para realizar ataques a usuarios que se encuentren con la sesión activa. Dentro de los riesgos de estas vulnerabilidades, un atacante podría robar las credenciales y suplantar la identidad de su víctima, incluso podría clonar el sitio del Santander usando el dominio de Santander.cl incluyendo HTTPS, para solicitar al usuario TODAS las coordenadas de transferencia. Mediante este tipo de ataque un atacante tambien podría redireccionar a su víctima a un sitio externo, sin que se diera cuenta. Por ejemplo, que la víctima ingrese en https://www.santander.cl/transa/productos/[url_vulnerable] y automaticamente sea redireccionado a un sitio falso, que el usuario ingrese sus credenciales y éstas sean robadas.

Por ejemplo, así de fácil es modificar la página de Santander gracias a esta vulnerabilidad

santander_htmlinjection

Otro ejemplo de explotación, la redirección de URL se puoede ver cuando inyectamos window.location.replace(), una función de Javascript que permite redireccionar al usuario a cualquier sitio web. En este caso, el ejemplo utilizado es <body onload=window.location.replace(“https://www.google.com”)>. Cuando el usuario haga click en el link, al cargar el sitio el evento onLoad gatillará la función Javascript que nos redireccionará a Google. Esto se ve en el código fuente una vez que lo inyectamos:

urlredirect_src

No filtra los tags, no filtra funciones Javascript. Algo anda mal …

La siguiente vulnerabilidad detectada, es un poco más complicada de explotar, sin embargo, es muy fácil de detectar y fácil de mitigar si es que se utilizan las buenas prácticas de desarrollo seguro desde un comienzo. Corresponde a una vulnerabilidad Cross-Site Request Forgery (XSRF). La prueba de concepto (PoC) para explotar esta vulnerabilidad la hice con una cuenta personal permitiendo eliminar todos los destinatarios agregados anteriormente a la lista de destinatarios para transferencias. De esta misma forma es posible explotar otro tipo de funciones, según el antojo del atacante.

Basicamente se prepara un sitio web fuera de Santander, que contenga llamadas a las funciones del Banco que ejecutan cierto tipo de acciones, en este caso la acción gatillada es “eliminar destinatario”

eliminadest_santander

Y la URL afectada es https://www.santander.cl/transa/productos/tt/transferencias/terceros-elimina-destn.asp?valor=XX. Donde XX corresponde al ID que queremos eliminar.

Una vulnerabilidad XSRF se presenta por falta de validaciones y falta de tokens en las llamadas a cierto tipo de funciones que requieren un mínimo de seguridad. Por ejemplo, si te envio un link externo alojado en zerial.org que contenga un html con un iframe que llame a la URL vulnerable, si tienes tu sesión iniciada automaticamente se eliminará el destinatario que yo indique en el iframe. Esto se soluciona utilizando tokens que permitan verificar le origen y validéz de la petición, con el fin de detectar peticiones de sitios externos.

Ambas vulnerabilidades, XSS y XSRF, se encuentran dentro del TOP 10 de OWASP, por lo tanto, podemos deducir que no se cumplen los mínimos estandares de seguridad.

OWASP TOP 10 – A3 Cross-Site Scripting (XSS).

OWASP TOP 10 – A8 Cross-Site Request Forgery (CSRF).

 

ACTUALIZADO: 9/Junio/2015

Banco Santander ha solucionado el problema de seguridad, nuevamente de forma reactiva ignorando los anuncios previos y actuando solo cuando se hace una publicación.

 

13 comentarios

  1. Cero preocupación por la seguridad informática, que mal

  2. M.A. Gebauer Muñoz

    junio 3, 2015 a las 11:42 am

    Me interesa saber si BCO. SANTANDER ha resuelto las vulnerabilidades de nuestras cuentas. Saludos.

  3. Recibiste alguna respuesta desde la publicación de este post?

  4. @FelipeG: Hasta el momento ninguna respuesta

  5. cerrando cuenta en chantander…

  6. No entiendo como las empresas no se preocupan de la Seguridad de sus activos, la Seguridad Informática debería ser aplicada en todo ámbito y sobre todo para empresas grandes como esta.

  7. Zerial, con respecto al CSRF indicas que permite
    la eliminación de todos los destinatarios agregados, mi duda es si tbn se pueden modificar???

  8. La seguridad del santander siempre ha dejado mucho que desear en mi opinión. Hace un par de años recuerdo que la versión movil del sitio enviaba la contraseña (4 dígitos numéricos… nada menos seguro) a través de la url, no podría enumerar en un post la cantidad de razones por las que esto es inseguro sino que además cuando les envié un mensaje informando respecto a esta vulnerabilidad me respondieron que si no me gustaba entonces que no me conectara desde el celular.

  9. @klubbzx: No llegue a hacer esa prueba, solo verifique que existiera la vuln pero no determine por completo el alcance

    @Juan: No se porque no me sorprende lo que me cuentas.. me ha tocado vivir eso en muchas ocasiones, siempre que se intenta reportar se reciben las respuestas menos esperadas

  10. La web del santander la verdad que ya la ponian actualizar porque aunque le han lavado un poco la cara todavia la veo muy desfasada como por ejemplo la de lacaxia

  11. Es cierto, deja mucho que desear…el otro día en el bus había un funcionario con XP en su laptop.

    =/

  12. Estimados. Me acabo de enterar y confirmar que Sandander.cl sigue con vulnerabilidades!!!… desde cualquier equipo si realizan un ping, responde un servidor que no es http://www.santander.cl (e9805.b.akamaiedge.net [184.28.1.37])… esto lo detecté, ya que a una colega de trabajo ayer la llamaron para intentar estafarla… los sujetos estaban conectados a su cuenta y estaban intentando realizar una transferencia. La llamaron para solicitarle las claves de coordenadas, el cuento era que el Banco le estaba haciendo una devolución de dinero, pero hicieron un avance desde su propia TC hacia la CC para que se viera un aumento en el Saldo y con eso le solicitaban las claves para cerrar esa transacción… no cayó en la trampa, pero hay muchas personas que al parecer están siendo afectadas en estos días… Alerta!!!

  13. saludos estimado @Zerial
    desde Santa Cruz – Boliva ( OWASP latam tour 2018 LPZ)
    @jivan

    interesante articulo.,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Esto sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.