¿Es peligroso enviar “Access-Control-Allow-Origin: http: // localhost: 8888”?

9

Recientemente encontré los siguientes encabezados HTTP en un sitio que al menos podrían describirse como un objetivo de alto valor:

Access-Control-Allow-Origin: http://localhost:8888
Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: [some custom non-standard headers]

Esto me parece extraño, o al menos no cumple con el CORS RFC :

  

El encabezado Access-Control-Allow-Origin indica si un recurso se puede compartir en función de devolver el valor del encabezado de solicitud de Origen, "*", o "nulo" en la respuesta.

El valor devuelto obviamente no es mi encabezado de solicitud de Origen (o * o null ). Por lo tanto, mis preguntas son:

  • ¿Hay alguna buena razón para enviar estos encabezados? A mí me parece algo usado en pruebas que accidentalmente se han filtrado a la producción.
  • ¿Es posible explotar esto de alguna manera? Me parece poco probable, ya que solo una pequeña minoría de usuarios tendrá algo ejecutándose en ese puerto, además de que un atacante no podría controlarlo de todos modos. Pero tal vez estoy pasando por alto algo.
  • ¿Esto es algo que justifica ponerse en contacto con el sitio en cuestión para informarles sobre el problema?
pregunta Anders 28.12.2016 - 13:30
fuente

2 respuestas

2

Para que un atacante haga uso de este encabezado CORS, debe ejecutar Javascript en localhost: 8888. Inspirado por su pregunta, busqué un servicio que se ejecute en localhost: 8888 y que permita a un atacante ejecutar Javascript. Encontré uno:

MAMP es un webstack que se ejecuta en el puerto 8888 de manera predeterminada y viene con el SQLiteManager vulnerable. SQLiteManager tiene varias vulnerabilidades, una de las cuales es XSS usando CSRF, por lo que un atacante podría activar Javascript de forma remota para que se ejecute en el contexto de localhost: 8888. Entonces podría leer los datos de su objetivo de alto valor.

Este ataque no es realmente probable, ya que solo funcionaría para usuarios que son visitantes de su sitio y usuarios de MAMP. Además, MAMP también tiene un ejecución remota de código , por lo que el atacante no necesita el encabezado CORS para leer las respuestas HTTP.

    
respondido por el Sjoerd 13.07.2017 - 11:23
fuente
1

Creo que esto debería ser explotable en un escenario MiTM típico, especialmente si no usas encabezados HSTS (tampoco es necesario degradarlo, ya que de todos modos es un ataque de suplantación de DNS). La misma red local que localhost: 8888. La navegación lo lleva a creer que es usted y responde con la respuesta CORS. - Realmente no entiendo por qué necesita un sitio con este tipo de encabezado de respuesta CORS

    
respondido por el shinkurt 26.04.2017 - 00:01
fuente

Lea otras preguntas en las etiquetas