{'xhtml:p': ['An adversary abuses the flexibility and discrepancies in the parsing and interpretation of HTTP Request messages by different intermediary HTTP agents (e.g., load balancer, reverse proxy, web caching proxies, application firewalls, etc.) to split a single HTTP request into multiple unauthorized and malicious HTTP requests to a back-end HTTP agent (e.g., web server).', 'See CanPrecede relationships for possible consequences.']}
Description
Attack Execution Flow
Step 1
Explore[Survey network to identify target] The adversary performs network reconnaissance by monitoring relevant traffic to identify the network path and parsing of the HTTP messages with the goal of identifying potential targets.
Scan networks to fingerprint HTTP infrastructure and monitor HTTP traffic to identify HTTP network path with a tool such as a Network Protocol Analyzer.
[Indagine sulla rete per identificare il target] L'adversary effettua ricognizione della rete monitorando il traffico rilevante per identificare il percorso di rete e analizzando i messaggi HTTP con l'obiettivo di individuare potenziali target.
Scansiona le reti per fingerprintare l'infrastruttura HTTP e monitora il traffico HTTP per identificare il percorso di rete HTTP utilizzando uno strumento come un Network Protocol Analyzer.
Attack Techniques
-
Scan networks to fingerprint HTTP infrastructure and monitor HTTP traffic to identify HTTP network path with a tool such as a Network Protocol Analyzer.
Step 2
Experiment[Identify vulnerabilities in targeted HTTP infrastructure and technologies] The adversary sends a variety of benign/ambiguous HTTP requests to observe responses from HTTP infrastructure in order to identify differences/discrepancies in the interpretation and parsing of HTTP requests by examining supported HTTP protocol versions, HTTP headers, syntax checking and input filtering.
[Identificare vulnerabilità nell'infrastruttura e nelle tecnologie HTTP mirate] L'avversario invia una varietà di richieste HTTP benigni/ambigue per osservare le risposte dell'infrastruttura HTTP al fine di identificare differenze/discrepanze nell'interpretazione e nell'analisi delle richieste HTTP esaminando le versioni del protocollo HTTP supportate, gli header HTTP, i controlli di sintassi e il filtraggio degli input.
Step 3
Experiment[Cause differential HTTP responses by experimenting with identified HTTP Request vulnerabilities] The adversary sends maliciously crafted HTTP requests with custom strings and embedded web scripts and objects in HTTP headers to interfere with the parsing of intermediary and back-end HTTP infrastructure, followed by normal/benign HTTP request from the adversary or a random user. The intended consequences of the malicious HTTP requests will be observed in the HTTP infrastructure response to the normal/benign HTTP request to confirm applicability of identified vulnerabilities in the adversary's plan of attack.
Continue the monitoring of HTTP traffic.
Utilize different sequences of special characters (CR - Carriage Return, LF - Line Feed, HT - Horizontal Tab, SP - Space and etc.) to bypass filtering and back-end encoding and to embed:
additional HTTP Requests with their own headers
malicious web scripts into parameters of HTTP Request headers (e.g., browser cookies like Set-Cookie or Ajax web/browser object parameters like XMLHttpRequest)
adversary chosen encoding (e.g., UTF-7)
to utilize additional special characters (e.g., > and <) filtered by the target HTTP agent.
Note that certain special characters and character encoding may be applicable only to intermediary and front-end agents with rare configurations or that are not RFC compliant.
Follow an unrecognized (sometimes a RFC compliant) HTTP header with a subsequent HTTP request to potentially cause the HTTP request to be ignored and interpreted as part of the preceding HTTP request.
Sperimentazione
[Generare risposte HTTP differenziate sperimentando con vulnerabilità identificate nelle richieste HTTP] L'attaccante invia richieste HTTP maliziosamente confezionate con stringhe personalizzate e script web e oggetti incorporati negli header HTTP per interferire con l'analisi dell'infrastruttura HTTP intermedia e di back-end, seguite da richieste HTTP normali/innocue da parte dell'attaccante o di un utente casuale. Le conseguenze previste delle richieste HTTP dannose saranno osservate nella risposta dell'infrastruttura HTTP alla richiesta HTTP normale/innocua per confermare l'applicabilità delle vulnerabilità identificate nel piano di attacco dell'attaccante.
Continuare il monitoraggio del traffico HTTP.
Utilizzare sequenze diverse di caratteri speciali (CR - Carriage Return, LF - Line Feed, HT - Horizontal Tab, SP - Space, ecc.) per bypassare filtri e codifiche back-end e per incorporare:
richieste HTTP aggiuntive con propri header
script web dannosi nei parametri degli header delle richieste HTTP (ad esempio, cookie del browser come Set-Cookie o parametri di oggetti web/browser Ajax come XMLHttpRequest)
codifica scelta dall'attaccante (ad esempio, UTF-7)
per utilizzare caratteri speciali aggiuntivi (ad esempio > e <) filtrati dall'agente HTTP di destinazione.
Si segnala che alcuni caratteri speciali e codifiche dei caratteri potrebbero essere applicabili solo ad agenti intermedi e front-end con configurazioni rare o non conformi alle RFC.
Seguire un header HTTP non riconosciuto (a volte conforme alle RFC) con una richiesta HTTP successiva per potenzialmente causare l'ignoramento della richiesta HTTP e la sua interpretazione come parte della richiesta HTTP precedente.
Attack Techniques
-
Follow an unrecognized (sometimes a RFC compliant) HTTP header with a subsequent HTTP request to potentially cause the HTTP request to be ignored and interpreted as part of the preceding HTTP request.
-
Utilize different sequences of special characters (CR - Carriage Return, LF - Line Feed, HT - Horizontal Tab, SP - Space and etc.) to bypass filtering and back-end encoding and to embed: additional HTTP Requests with their own headers malicious web scripts into parameters of HTTP Request headers (e.g., browser cookies like Set-Cookie or Ajax web/browser object parameters like XMLHttpRequest) adversary chosen encoding (e.g., UTF-7) to utilize additional special characters (e.g., > and <) filtered by the target HTTP agent. Note that certain special characters and character encoding may be applicable only to intermediary and front-end agents with rare configurations or that are not RFC compliant.IT: Segui un'intestazione HTTP non riconosciuta (a volte conforme a RFC) con una richiesta HTTP successiva, al fine di potenzialmente far sì che la richiesta HTTP venga ignorata e interpretata come parte della richiesta HTTP precedente.
-
Continue the monitoring of HTTP traffic.IT: Segui un'intestazione HTTP non riconosciuta (a volte conforme a RFC) con una richiesta HTTP successiva, al fine di potenzialmente far sì che la richiesta HTTP venga ignorata e interpretata come parte della richiesta HTTP precedente.
Step 4
Exploit[Perform HTTP Request Splitting attack] Using knowledge discovered in the experiment section above, smuggle a message to cause one of the consequences.
Leverage techniques identified in the Experiment Phase.
[Eseguire un attacco di HTTP Request Splitting] Utilizzando le conoscenze acquisite nella sezione sperimentale sopra, inserire un messaggio per provocare una delle conseguenze.
Sfruttare le tecniche identificate nella Fase di Sperimentazione.
Attack Techniques
-
Leverage techniques identified in the Experiment Phase.