An attacker is able to trick the victim into executing a Flash document that passes commands or calls to a Flash player browser plugin, allowing the attacker to exploit native Flash functionality in the client browser. This attack pattern occurs where an attacker can provide a crafted link to a Flash document (SWF file) which, when followed, will cause additional malicious instructions to be executed. The attacker does not need to serve or control the Flash document. The attack takes advantage of the fact that Flash files can reference external URLs. If variables that serve as URLs that the Flash application references can be controlled through parameters, then by creating a link that includes values for those parameters, an attacker can cause arbitrary content to be referenced and possibly executed by the targeted Flash application.
Description
Attack Execution Flow
Step 1
Explore[Identification] Using a browser or an automated tool, an attacker records all instances of URLs (or partial URL such as domain) passed to a flash file (SWF).
Use an automated tool to record the variables passed to a flash file.
Use a browser to manually explore the website and analyze how the flash file receive variables, e.g. JavaScript using SetVariable/GetVariable, HTML FlashVars param tag, etc.
Use decompilers to retrieve the flash source code and record all user-controllable variables passed to a loadMovie* directive.
[Identificazione] Utilizzando un browser o uno strumento automatizzato, un attaccante registra tutte le istanze di URL (o URL parziali come dominio) passati a un file flash (SWF).
Utilizza uno strumento automatizzato per registrare le variabili passate a un file flash.
Utilizza un browser per esplorare manualmente il sito web e analizzare come il file flash riceve le variabili, ad esempio JavaScript che utilizza SetVariable/GetVariable, il tag param HTML FlashVars, ecc.
Utilizza decompilatori per recuperare il codice sorgente del flash e registrare tutte le variabili controllabili dall'utente passate a una direttiva loadMovie*.
Attack Techniques
-
Use decompilers to retrieve the flash source code and record all user-controllable variables passed to a loadMovie* directive.
-
Use an automated tool to record the variables passed to a flash file.IT: Utilizza decompiler per recuperare il codice sorgente Flash e registra tutte le variabili controllabili dall'utente passate a una direttiva loadMovie*
-
Use a browser to manually explore the website and analyze how the flash file receive variables, e.g. JavaScript using SetVariable/GetVariable, HTML FlashVars param tag, etc.IT: Utilizza decompiler per recuperare il codice sorgente Flash e registra tutte le variabili controllabili dall'utente passate a una direttiva loadMovie*
Step 2
Experiment[Attempt to inject a remote flash file] The attacker makes use of a remotely available flash file (SWF) that generates a uniquely identifiable output when executed inside the targeted flash file.
Modify the variable of the SWF file that contains the remote movie URL to the attacker controlled flash file.
[Tentativo di iniettare un file flash remoto] L'attaccante utilizza un file flash disponibile da remoto (SWF) che genera un output univocamente identificabile quando eseguito all’interno del file flash target.
Modificare la variabile del file SWF che contiene l'URL del filmato remoto con il file flash controllato dall'attaccante.
Attack Techniques
-
Modify the variable of the SWF file that contains the remote movie URL to the attacker controlled flash file.
Step 3
Exploit[Access or Modify Flash Application Variables] As the attacker succeeds in exploiting the vulnerability, they target the content of the flash application to steal variable content, password, etc.
Develop malicious Flash application that is injected through vectors identified during the Experiment Phase and loaded by the victim browser's flash plugin and sends document information to the attacker.
Develop malicious Flash application that is injected through vectors identified during the Experiment Phase and takes commands from an attacker's server and then causes the flash application to execute appropriately.
[Accesso o Modifica delle Variabili dell'Applicazione Flash] Man mano che l'attaccante riesce a sfruttare la vulnerabilità, mira al contenuto dell'applicazione flash per rubare il contenuto delle variabili, password, ecc.
Sviluppare un'applicazione Flash dannosa che viene iniettata attraverso vettori identificati durante la Fase di Sperimentazione e caricata dal plugin flash del browser della vittima, inviando informazioni sul documento all'attaccante.
Sviluppare un'applicazione Flash dannosa che viene iniettata attraverso vettori identificati durante la Fase di Sperimentazione e riceve comandi da un server dell'attaccante, causando così l'esecuzione appropriata dell'applicazione flash.
Attack Techniques
-
Develop malicious Flash application that is injected through vectors identified during the Experiment Phase and loaded by the victim browser's flash plugin and sends document information to the attacker.
-
Develop malicious Flash application that is injected through vectors identified during the Experiment Phase and takes commands from an attacker's server and then causes the flash application to execute appropriately.IT: Sviluppare un'applicazione Flash dannosa che viene iniettata tramite vettori identificati durante la Fase di Sperimentazione e caricata dal plugin Flash del browser della vittima, e che invia informazioni sul documento all'attaccante.
Step 4
Exploit[Execute JavaScript in victim's browser] When the attacker targets the current flash application, they can choose to inject JavaScript in the client's DOM and therefore execute cross-site scripting attack.
Develop malicious JavaScript that is injected from the rogue flash movie to the targeted flash application through vectors identified during the Experiment Phase and loaded by the victim's browser.
[Esecuzione di JavaScript nel browser della vittima] Quando l'attaccante prende di mira l'attuale applicazione flash, può scegliere di iniettare JavaScript nel DOM del client e quindi eseguire un attacco di cross-site scripting.
Sviluppare JavaScript dannoso che viene iniettato dal filmato flash malevolo nell'applicazione flash mirata attraverso i vettori identificati durante la Fase di Sperimentazione e caricati dal browser della vittima.
Attack Techniques
-
Develop malicious JavaScript that is injected from the rogue flash movie to the targeted flash application through vectors identified during the Experiment Phase and loaded by the victim's browser.