程序利用未經驗證的用戶輸入避開預期的跨域策略限制。
默認情況下,Flash 應用程序需要遵循 Same Origin Policy(同源策略),該策略可確保來自同一個域的兩個 SWF 應用程序能夠訪問各自的數據。Adobe Flash 允許開發人員通過編程或 crossdomain.xml 配置文件中的相應設置來更改策略。不過,確定能夠影響此設置的人選時應小心謹慎,如果跨域策略過于寬松,惡意應用程序就能趁機采用不當方式與受害者應用程序進行通信,從而導致發生欺騙、數據被盜、轉發及其他攻擊。策略限制會在出現以下情況時繞過漏洞:
1. 數據從一個不可信賴的數據源進入應用程序。
2. 數據用于加載或修改跨域策略設置。
例 1:以下代碼將已加載的 SWF 文件中的一個參數值作為用于加載跨域策略文件的 URL。
...
var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
var url:String = String(params["url"]);
flash.system.Security.loadPolicyFile(url);
...
...
var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
var domain:String = String(params["domain"]);
flash.system.Security.allowDomain(domain);
...
[1] Matt Wood and Prajakta Jagdale Auditing Adobe Flash through Static Analysis
[2] Peleus Uhley Creating more secure SWF web applications
[3] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 - (PCI 1.1) Requirement 6.5.10