This attack utilizes XQuery to probe and attack server systems; in a similar manner that SQL Injection allows an attacker to exploit SQL calls to RDBMS, XQuery Injection uses improperly validated data that is passed to XQuery commands to traverse and execute commands that the XQuery routines have access to. XQuery injection can be used to enumerate elements on the victim's environment, inject commands to the local host, or execute queries to remote files and data sources.
Description
Attack Execution Flow
Step 1
Explore[Survey the application for user-controllable inputs] Using a browser or an automated tool, an attacker follows all public links and actions on a web site. They record all the links, the forms, the resources accessed and all other potential entry-points for the web application.
Use a spidering tool to follow and record all links and analyze the web pages to find entry points. Make special note of any links that include parameters in the URL.
Use a proxy tool to record all user input entry points visited during a manual traversal of the web application.
Use a browser to manually explore the website and analyze how it is constructed. Many browsers' plugins are available to facilitate the analysis or automate the discovery.
[Survey the application for user-controllable inputs] Utilizzando un browser o uno strumento automatizzato, un attaccante segue tutti i link pubblici e le azioni su un sito web. Registrano tutti i link, i moduli, le risorse accessate e tutti gli altri potenziali punti di ingresso per l'applicazione web.
Utilizza uno strumento di spidering per seguire e registrare tutti i link e analizzare le pagine web per trovare punti di ingresso. Prendi nota in particolare di eventuali link che includono parametri nell'URL.
Utilizza uno strumento proxy per registrare tutti i punti di ingresso di input utente visitati durante una navigazione manuale dell'applicazione web.
Utilizza un browser per esplorare manualmente il sito web e analizzare come è costruito. Sono disponibili numerosi plugin per browser che facilitano l'analisi o automatizzano la scoperta.
Attack Techniques
-
Use a proxy tool to record all user input entry points visited during a manual traversal of the web application.
-
Use a spidering tool to follow and record all links and analyze the web pages to find entry points. Make special note of any links that include parameters in the URL.IT: Utilizza uno strumento proxy per registrare tutti i punti di ingresso di input utente visitati durante una scansione manuale dell'applicazione web.
-
Use a browser to manually explore the website and analyze how it is constructed. Many browsers' plugins are available to facilitate the analysis or automate the discovery.IT: Utilizza uno strumento proxy per registrare tutti i punti di ingresso di input utente visitati durante una scansione manuale dell'applicazione web.
Step 2
Experiment[Determine user-controllable input susceptible to injection] Determine the user-controllable input susceptible to injection. For each user-controllable input that the attacker suspects is vulnerable to XQL injection, attempt to inject characters that have special meaning in XQL. The goal is to create an XQL query with an invalid syntax.
Use web browser to inject input through text fields or through HTTP GET parameters.
Use a web application debugging tool such as Tamper Data, TamperIE, WebScarab,etc. to modify HTTP POST parameters, hidden fields, non-freeform fields, etc.
Use XML files to inject input.
Use network-level packet injection tools such as netcat to inject input
Use modified client (modified by reverse engineering) to inject input.
Sperimentazione
[Determinare l'input controllabile dall'utente suscettibile di injection] Determinare l'input controllabile dall'utente che l'attaccante sospetta sia vulnerabile a XQL injection. Per ogni input controllabile dall'utente, tentare di iniettare caratteri con significato speciale in XQL. L'obiettivo è creare una query XQL con una sintassi non valida.
Utilizzare il browser web per iniettare input tramite campi di testo o parametri HTTP GET.
Utilizzare uno strumento di debugging di applicazioni web come Tamper Data, TamperIE, WebScarab, ecc. per modificare i parametri HTTP POST, campi nascosti, campi non liberi, ecc.
Utilizzare file XML per iniettare input.
Utilizzare strumenti di iniezione di pacchetti a livello di rete come netcat per iniettare input.
Utilizzare client modificati (modificati tramite reverse engineering) per iniettare input.
Attack Techniques
-
Use web browser to inject input through text fields or through HTTP GET parameters.
-
Use modified client (modified by reverse engineering) to inject input.IT: Utilizzare il browser web per iniettare input tramite campi di testo o tramite parametri HTTP GET.
-
Use a web application debugging tool such as Tamper Data, TamperIE, WebScarab,etc. to modify HTTP POST parameters, hidden fields, non-freeform fields, etc.IT: Utilizzare il browser web per iniettare input tramite campi di testo o tramite parametri HTTP GET.
-
Use network-level packet injection tools such as netcat to inject inputIT: Utilizzare il browser web per iniettare input tramite campi di testo o tramite parametri HTTP GET.
-
Use XML files to inject input.IT: Utilizzare il browser web per iniettare input tramite campi di testo o tramite parametri HTTP GET.
Step 3
Exploit[Information Disclosure] The attacker crafts and injects an XQuery payload which is acted on by an XQL query leading to inappropriate disclosure of information.
Leveraging one of the vulnerable inputs identified during the Experiment phase, inject malicious XQuery payload. The payload aims to get information on the structure of the underlying XML database and/or the content in it.
[Divulgazione di informazioni] L'attaccante crea e inietta un payload XQuery che viene eseguito da una query XQL, portando a una divulgazione inappropriata di informazioni.
Sfruttando uno degli input vulnerabili identificati durante la fase di Sperimentazione, inietta un payload XQuery dannoso. Il payload ha lo scopo di ottenere informazioni sulla struttura del database XML sottostante e/o sul suo contenuto.
Attack Techniques
-
Leveraging one of the vulnerable inputs identified during the Experiment phase, inject malicious XQuery payload. The payload aims to get information on the structure of the underlying XML database and/or the content in it.
Step 4
Exploit[Manipulate the data in the XML database] The attacker crafts and injects an XQuery payload which is acted on by an XQL query leading to modification of application data.
Leveraging one of the vulnerable inputs identified during the Experiment phase, inject malicious XQuery payload.. The payload tries to insert or replace data in the XML database.
[Manipolare i dati nel database XML] L'attaccante crea e inietta un payload XQuery che viene eseguito da una query XQL, portando alla modifica dei dati dell'applicazione.
Sfruttando uno degli input vulnerabili identificati durante la fase di Sperimentazione, iniettare un payload XQuery dannoso.. Il payload tenta di inserire o sostituire dati nel database XML.
Attack Techniques
-
Leveraging one of the vulnerable inputs identified during the Experiment phase, inject malicious XQuery payload.. The payload tries to insert or replace data in the XML database.