¿Por qué un "lienzo contaminado" es un riesgo?

9

Comprendo la preocupación por un lienzo contaminado: la idea de que los bits de una imagen de otro sitio pueden enviarse de nuevo a un servidor malintencionado. Pero, ¿puedes explicar los detalles de cómo funciona exactamente esto?

Supongamos que el usuario visita nastysite.com y nastysite.com hace una solicitud de imagen a mydatingsite.com o mybankingsite.com para obtener una imagen que contiene información privada para el usuario, y luego representa esta imagen en un lienzo, obtiene los bits del lienzo y los envía de vuelta al servidor nastysite.com .

¿Cómo se vería exactamente esa URL de solicitud de imagen? Digamos que es su imagen de un perfil de sitio de citas en el que inició sesión con una cookie de sesión ( mydatingsite.com ), o una imagen de cheque de un sitio bancario en el que inició sesión con una cookie de sesión ( mybankingsite.com ). ¿Cómo sabe nastysite.com qué URL específica usar? ¿Y funciona si la conexión que tiene con el sitio de citas o banca a través de HTTPS es parte de una sesión en particular?

Supongo que esto es realmente una pregunta más acerca de las cookies de sesión. ¿ nastysite.com tiene acceso gratuito a las cookies de su sesión para mydatingsite.com y mybankingsite.com ? ¿Se puede usar en una solicitud de imagen que los servidores mydatingsite.com y mybankingsite.com no pueden decir que no es una solicitud de sesión normal desde su propia página?

    
pregunta M Katz 09.02.2018 - 03:05
fuente

1 respuesta

7
  

¿Cómo se vería exactamente esa URL de solicitud de imagen?

No tiene por qué ser nada complicado o anormal. Hay dos formas principales en que esto podría funcionar (si no fuera por las restricciones en el navegador):

  • En el primero, hay una URL específica para la imagen de perfil del usuario actual, por ejemplo, http://mydatingsite.com/currentuser/profileimage.jpg . Esta podría ser una forma extraña de diseñar un sitio, pero lo he visto usado. Este tipo de ataque funciona contra cualquier persona que haya iniciado sesión, y no necesita una URL personalizada para su objetivo.
  • El segundo funciona para ataques dirigidos a un usuario específico. Si sé que usted es el propietario del cheque con ID 12345, podría averiguar cómo se ve al usar una URL como http://mybankingsite.com/checks/12345.png .
  

¿Cómo sabe nastysite.com qué URL específica usar?

Como atacante tienes que investigar un poco. Puede encontrar las URL o, al menos, los formatos de las URL en el código fuente de la página de la que está intentando obtener datos.

  

¿Y funciona si la conexión que tiene con el sitio de citas o banca es a través de HTTPS es parte de una sesión en particular?

No estoy seguro de qué tipo de sesión estás hablando aquí. Pero, en general, funcionaría cuando el usuario haya iniciado sesión en el sitio en cuestión en el mismo navegador en el que visitan nastysite.com .

  

¿ nastysite.com tiene acceso gratuito a las cookies de su sesión para mydatingsite.com y mybankingsite.com ? ¿Se puede usar en una solicitud de imagen que los servidores mydatingsite.com y mybankingsite.com no pueden decir que no es una solicitud de sesión normal desde su propia página?

Tienes razón en que todo esto se reduce a las cookies. No puede leer los orígenes cruzados de las cookies, por lo que nastysite.com no tiene idea de lo que es su sessionid en mydatingsite.com . ¡Pero para que esto funcione, no hay necesidad de leer cookies! El navegador es lo suficientemente amable como para enviar cookies en todas las solicitudes, independientemente del origen de la solicitud.

Si los navegadores no marcaran lonas con datos de origen cruzado como contaminados, esto sería un problema real. Tendría una situación similar a CSRF, donde todos los servidores deben tener protección para detener los accidentes de origen cruzado. Las nuevas características, como el lienzo, no deben romper la compatibilidad hacia atrás y obligar a todos los sitios existentes a adaptarse. Por eso se introdujo el concepto contaminado.

Tenga en cuenta que, a falta de errores en el navegador, todo esto es bastante teórico, ya que los navegadores deberían detener este tipo de ataque.

    
respondido por el Anders 09.02.2018 - 11:19
fuente

Lea otras preguntas en las etiquetas