Fuente original - enlace
2.4.1. Abusando de crossdomain.xml de Flash
La misma política de origen a menudo se puede considerar demasiado restrictiva, lo que hace que los desarrolladores de aplicaciones reclamen la capacidad de que dos dominios diferentes trabajen interactivamente entre sí. Uno de los primeros complementos populares del navegador que admite esta interacción entre dominios fue Flash de Adobe. Adobe comprendió los peligros de permitir el acceso arbitrario entre dominios e implementó una medida de seguridad para determinar si Flash permitiría la interacción entre dominios. Esta medida de seguridad se implementa a través del archivo de políticas entre dominios.
El archivo de políticas de dominio cruzado de Flash define las "reglas" para la interacción entre dominios. El archivo de políticas entre dominios es simplemente un archivo XML llamado crossdomain.xml. Aquí hay un ejemplo de un archivo crossdomain.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<cross-domain-policy
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:noNamespaceSchemaLocation=
"http://www.adobe.com/xml/schemas/PolicyFile.xsd">
<allow-access-from domain="*" /> </cross-domain-policy>
Este archivo de política crossdomain.xml debe estar alojado en el servidor que desea permitir la interacción entre dominios. Antes de permitir la interacción entre dominios, Flash verificará la presencia de un archivo de política entre dominios en el dominio de destino. Si no existe un archivo de políticas, Flash utiliza de manera predeterminada la política restrictiva del mismo origen y no permite la interacción entre dominios. Si existe un archivo crossdomain.xml en el dominio de destino, Flash lee las "reglas" contenidas en el archivo de políticas y permite la interacción entre dominios según las reglas establecidas. Una vez más, toda la premisa se basa en el hecho de que el archivo de políticas de dominios cruzados debe servirse desde el dominio que desea permitir la interacción entre dominios. De forma predeterminada, Flash verificará la presencia de un archivo de política de varios dominios llamado crossdomain.xml en la raíz web de la aplicación web (http://www.example.com/crossdomain.xml).
A partir de Flash 7, puede hacer que Flash compruebe si existe crossdomain.xml en ubicaciones arbitrarias (no solo la raíz de la raíz web) cuando el componente Flash invoque loadPolicyFile()
con una URL como parámetro (que contiene la ubicación del dominio cruzado). .xml en el servidor de destino).
NOTA
Puede encontrar más información sobre System.Security.loadPolicyFile()
en el siguiente sitio web:
un
El concepto de la política de dominio cruzado de Flash se basa en unas pocas premisas simples. Una versión simplificada de la lógica es la siguiente:
El archivo de políticas entre dominios debe estar ubicado en una ruta de acceso web del servidor web para permitir el acceso de dominios cruzados desde Flash a ese servidor.
La única forma en que alguien puede colocar un archivo arbitrario en una ruta de acceso del servidor web a través de la web es si tiene acceso administrativo al servidor web.
Por lo tanto, si el servidor web tiene un archivo de políticas de dominio cruzado en una ruta accesible en el servidor web, un administrador debe haberlo colocado allí.
Esta lógica es inherentemente defectuosa porque muchas aplicaciones web permiten a los usuarios cargar contenido en el servidor web. Si la aplicación posteriormente sirve ese contenido bajo su nombre de dominio, esa aplicación web se ha puesto en riesgo sin saberlo debido a las capacidades de dominio cruzado de Flash. Si un atacante puede cargar un archivo de política crossdomain.xml, el atacante puede usar un applet Flash malvado en su servidor web para atacar a la aplicación vulnerable. Este malvado Flash applet podrá realizar solicitudes de dominio cruzado a la aplicación web vulnerable y esas solicitudes se realizarán con las cookies de sesión de cualquier usuario desafortunado que se tope con el sitio web del atacante. Para empeorar las cosas, el archivo de políticas entre dominios no necesita tener la extensión .xml. Los criterios de seguridad de Flash respetarán cualquier extensión de archivo.
NOTA
Adobe Flash 9.0.115.0 permite la especificación de "meta-políticas". Estas políticas definen qué archivos de políticas en el servidor deben respetarse. Puede encontrar más información sobre las meta-políticas en enlace .