Seguridad iframe entre dominios

5

¿Qué tan explotable es un sitio que escucha los mensajes del navegador de cualquier persona?

Estoy trabajando en un sitio donde he encontrado algunos problemas con iframe. El caso es que el sitio A tiene un iframe del sitio B, y el sitio A escucha "mensajes" de en cualquier lugar y luego puede realizar dos acciones diferentes cuando llega un mensaje:

  • Establecer document.location="datos de mensajes entrantes"
  • Cree un formulario y configure el valor del atributo de acción en "datos de mensajes entrantes", agréguelo al DOM y luego envíe el formulario.

Esto significa que puedo configurar el sitio Evil, incluir un iframe del sitio A, y luego comenzar a enviar mensajes arbitrarios, por ejemplo "javascript: alert (1)", que en ambos casos anteriores ejecutará el javascript en el iframe contexto. Antes de informarle esto a las personas para las que trabajo, necesito tener un escenario en el que este sea un problema importante. Y aquí es donde se complica, porque realmente no puedo encontrar un escenario en el que este sea un problema importante. Las ideas que tengo son:

  • Puedo ejecutar javascript en el contexto del sitio A, pero no puedo obtener cookies debido a SoP.
  • Podría configurar un agente de escucha clave en el sitio Evil y hacer que el iframe del sitio A se llene de la pantalla y solicite un inicio de sesión, de esa manera, cosechará los inicios de sesión para el sitio A. Esto requeriría un poco de ingeniería social para funcionar correctamente.

Pero esto es lo mejor que se me ocurre, así que mi pregunta es: ¿he pasado por alto algo por completo? Buscar en Google no ofrece ninguna otra opción.

EDITAR:

Obviamente, esto abre el sitio A (para quien trabajo) para XSS a través del sitio B (que es una compañía semi conocida, pero aún así). Otro punto que estoy pensando en hacer es ¿por qué demonios alguien haría ALGO de esta manera? ¿Crear un formulario y enviar y responder con algunos datos recibidos? No puedo encontrar una buena razón para hacerlo de esta manera, ¿quizás alguna de ustedes puede ser buena gente?

EDIT2:

Parece que no hay manera de pasar por alto la Política de Same Origin aunque puedo ejecutar un javascript arbitrario en el contexto del Sitio A a través del iframe ubicado en Site Evil. Así que no hay nada acerca de esta "vulnerabilidad" que lo haga diferente a un atacante para que un usuario haga clic en un enlace arbitrario.

    
pregunta sboutzen 14.07.2016 - 15:32
fuente

2 respuestas

2

No daré el "cómo hacer" (explotar), pero:

  • Puede recuperar las cookies (como se dice en los comentarios, pero solo las que no son solo para HTTP).
  • Puede omitir todas las protecciones CSRF (como si estuvieran basadas en Referer / Origin encabezados HTTP).
  • Puede mostrar una ventana emergente pidiéndole al usuario que vuelva a iniciar sesión (y así robar su contraseña).
  • Puede descargar cualquier archivo arbitrario (incluido .exe), y el usuario seguramente confiará en él ya que proviene de un sitio web confiable.
  • Puedes matar la reputación de la compañía al incluir una imagen impactante o lo que sea.
  • Puede incrustar un malware / virus en el URI (haga un exploit simple con una cadena EICAR basada en una base en una base de datos)

Haga lo que se sugiere para solucionar esto: acepte solo los dominios entrantes de confianza y valide los datos antes de ponerlos en el formulario y demás (no necesita el URI completo en los datos del mensaje, a menos que realmente desee enviar el formulario a cualquier dominio y cualquier protocolo).

    
respondido por el Xenos 07.04.2017 - 15:34
fuente
1

Definitivamente, podría secuestrar la sesión obteniendo cookies, si puede ejecutar el Javascript en esa página / marco enviando el mensaje.

Consulte: Cómo enviar un dominio cruzado enviar solicitud vía javascript

El requisito mínimo aquí es que necesitará un servidor que controle. Para que pueda configurar el encabezado Access-Control-Allow-Origin de la respuesta generada para su solicitud de AJAX.

    
respondido por el Deepak Chaudhary 15.07.2016 - 19:33
fuente

Lea otras preguntas en las etiquetas