程序使用未經驗證的用戶輸入加載 SWF 文件,這會導致特定 Flash 應用程序能夠引用和執行任何內容。
Flash API 提供了可將遠程 SWF 文件加載到現有執行環境的接口。雖然跨域策略只允許加載可信賴的域列表中的 SWF 文件,但所定義的跨域策略通常都過于寬松。如果允許使用不可信賴的用戶輸入來定義要加載的 SWF 文件,則會導致特定應用程序能夠引用和執行任何內容,從而受到 cross-site flashing 攻擊。
Cross-site flashing 漏洞會在以下情況中出現:
1. 數據從一個不可信賴的數據源進入應用程序。
2. 數據用于加載遠程 SWF 文件。
例:以下代碼將已加載的 SWF 文件中的一個參數值作為用于加載遠程 SWF 文件的 URL。
...
var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
var url:String = String(params["url"]);
var ldr:Loader = new Loader();
var urlReq:URLRequest = new URLRequest(url);
ldr.load(urlReq);
...
[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.2 - (PCI 1.2) Requirement 6.3.1.1, Requirement 6.5.2
[4] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 - (PCI 2.0) Requirement 6.5.1
[5] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 - (PCI 1.1) Requirement 6.5.6