Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Inserción en marcos y defensa contra el secuestro de clics

5 tareas · 38 min · Principiante

Cualquier página puede pedirle al navegador que muestre otra dentro de un marco. Si la página de dentro tiene botones que actúan con la sesión de quien la ve, la de fuera puede taparla, hacerla transparente y conseguir que la persona pulse algo que no está viendo. Empleos Tangaral, un portal de empleo, recibió el aviso de que «el portal se deja meter en marcos». Se leen las cabeceras de enmarcado de siete páginas, quién las incrusta a propósito y la prueba que ya hizo su equipo de QA, y se decide qué páginas importan y cómo se cierran.

0 de 5 · 0%

Objetivo de la sala

Cualquier página puede pedirle al navegador que muestre otra dentro de un marco. Si la página de dentro tiene botones que actúan con la sesión de quien la ve, la de fuera puede taparla, hacerla transparente y conseguir que la persona pulse algo que no está viendo. Empleos Tangaral, un portal de empleo, recibió el aviso de que «el portal se deja meter en marcos». Se leen las cabeceras de enmarcado de siete páginas, quién las incrusta a propósito y la prueba que ya hizo su equipo de QA, y se decide qué páginas importan y cómo se cierran.

El secuestro de clics (CWE-1021, restricción incorrecta de capas o marcos de la interfaz) no roba nada por sí mismo: usa la sesión de la víctima para que ella misma haga la acción. Para eso hacen falta dos cosas a la vez. La primera, que la página se deje mostrar dentro de un marco de otro sitio. La segunda, que ofrezca una acción que se complete con uno o dos clics, sin escribir nada que la persona tenga que pensar. Una página de solo lectura que se deja enmarcar es una observación menor; una página con un botón que borra la cuenta, no.

Por eso el informe no se escribe como «falta la cabecera en todas las páginas»: se ordena por lo que cada página permite hacer.

Responde para continuar

¿Qué tiene que darse para que el enmarcado de una página sea un hallazgo con impacto?

Ver pista de ayuda

Son dos condiciones a la vez, y ninguna de ellas habla de cookies ni de scripts.

Dos mecanismos le dicen al navegador quién puede enmarcar una página. El antiguo es la cabecera X-Frame-Options, que solo tiene dos valores con efecto: DENY (nadie) y SAMEORIGIN (solo páginas del mismo origen). Cualquier otro valor, aunque parezca razonable y venga en documentación vieja, los navegadores actuales lo descartan, y la página queda como si no trajera la cabecera.

Abre cabeceras-paginas.txt y prueba-marcos.txt, y cruza cada valor de la cabecera antigua con el resultado de la prueba.

Responde para continuar

¿Qué ruta confía en X-Frame-Options y aun así se mostró en el marco de la página de pruebas? Escríbela tal como aparece.

Ver pista de ayuda

Solo dos valores de la cabecera antigua funcionan; busca una página que use un tercero.

El mecanismo actual es la directiva frame-ancestors de la política de contenido (CSP), que acepta 'none', 'self' o una lista de orígenes. Tiene dos detalles que se olvidan: no hereda de default-src, así que una CSP sin esa directiva no limita el enmarcado; y solo se aplica cuando llega en la cabecera de la respuesta, no cuando la página la declara en una etiqueta del HTML.

Responde para continuar

¿Qué ruta declara frame-ancestors donde el navegador no la aplica? Escríbela tal como aparece.

Ver pista de ayuda

Lee la nota que va debajo de la tabla de cabeceras.

Cuando una respuesta trae las dos, los navegadores actuales obedecen a frame-ancestors e ignoran X-Frame-Options; la antigua solo actúa en navegadores que no conocen la directiva. Una página con DENY en la cabecera antigua y una lista en la CSP se deja enmarcar desde esa lista. Eso puede ser lo que el equipo quiere, pero entonces hay que mirar quién está en la lista y qué controla de verdad. Revisa también incrustaciones.txt.

Responde para continuar

¿Desde qué host se puede mostrar /cuenta/ajustes aunque su X-Frame-Options diga DENY? Escribe el host sin esquema.

Ver pista de ayuda

Mira la columna de la CSP de M7 y la última fila de la prueba.

Con la prueba en la mano, tres páginas de la cuenta se dejan enmarcar desde cualquier sitio, y una más desde un host que opera un proveedor y donde los candidatos dejan comentarios con enlaces. La corrección es de configuración: una regla por defecto que niegue el enmarcado en toda el área del candidato, enviada como cabecera desde el servidor o el proxy, con la cabecera antigua de respaldo, y excepciones explícitas y revisadas solo donde haya un uso real.

Responde para continuar

¿Qué recomiendas al equipo de Empleos Tangaral?

Ver pista de ayuda

Revisa lo que encontraste en las tareas 2, 3 y 4.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad