Entrada

Referer en Sitios Web de Streaming

Introducción

En el ámbito de la seguridad web, la correcta implementación y validación del encabezado Referer es clave, especialmente en plataformas de streaming que manejan contenido comercial.

Un caso específico que ilustra esta vulnerabilidad es el de un sitio de streaming de un canal de televisión en vivo que no gestiona adecuadamente esta política (Referrer-Policy), permitiendo que se realice un bypass a la medida de seguridad contra orígenes no autorizados.

Prueba del Concepto

Al observar en detalle cómo responde el servidor a diversas peticiones de recursos desde diferentes orígenes, se puede evidenciar que, en algunos casos, solo estableciendo la propiedad referrerpolicy en no-referrer para no enviar el encabezado Referer con un dominio diferente al original, es posible eludir esta pequeña capa de seguridad.

1
2
3
4
5
6
7
8
9
10
11
<iframe
  id="MediaStreamVideoPlayer-ff93cb7a457854f6c89abae3595a80ca4"
  loading="lazy"
  title="MediaStream embedded video player"
  data-src="https://mdstrm.com/live-stream/574463697b9817cf0886fc17?enablejsapi=1&amp;autoplay=true&amp;muted=1&amp;starttime=0"
  src="https://mdstrm.com/live-stream/574463697b9817cf0886fc17?enablejsapi=1&amp; autoplay=true"
  allow="autoplay; encrypted-media"
  data-lazy-load="true"
  allowfullscreen=""
  referrerpolicy="no-referrer" <!-- evitando enviar referer -->
></iframe>

A la fecha de esta publicación, el ejemplo completo (PoC) se puede encontrar en referer-policy bypass (en algunos casos la reproducción no es compatible con Firefox).

Problema

Sin el Referer, el servidor no puede verificar la fuente de la solicitud. Esto permite que sitios no autorizados puedan incrustar el contenido del streaming sin restricciones.

Mejores Prácticas

Para mitigar estos riesgos, es fundamental:

  • Establecer Políticas de Referencia Claras: En lugar de utilizar no-referrer, se podrían considerar políticas como same-origin o strict-origin, que permiten el envío del Referer solo en solicitudes que provienen de orígenes confiables.

  • Validar el Referer en el Servidor: Implementar validaciones en el servidor para asegurarse de que las solicitudes provienen de fuentes autorizadas. Esto puede incluir verificar el encabezado Referer y rechazar solicitudes que no cumplan con los criterios establecidos.

Nota

Este artículo tiene fines educativos y no fomenta el uso indebido de las vulnerabilidades descritas. No me hago responsable por el uso que terceros puedan darle a esta información.

Esta entrada está licenciada bajo CC BY 4.0 por el autor.