{'xhtml:p': ['An adversary manipulates and injects malicious content in the form of secret unauthorized HTTP responses, into a single HTTP response from a vulnerable or compromised back-end HTTP agent (e.g., 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 to intended targets in order to identify differences/discrepancies in the interpretation and parsing of HTTP requests by examining supported HTTP protocol versions, message sizes, and HTTP headers.
[Identificare vulnerabilità nell'infrastruttura HTTP mirata e nelle tecnologie associate] L'avversario invia una varietà di richieste HTTP benigni/ambigue per osservare le risposte dell'infrastruttura HTTP verso i bersagli intenzionati al fine di identificare differenze/discrepanze nell'interpretazione e nell'analisi delle richieste HTTP esaminando le versioni del protocollo HTTP supportate, le dimensioni dei messaggi e gli header HTTP.
Step 3
Experiment[Cause differential HTTP responses by experimenting with identified HTTP Response vulnerabilities] The adversary sends maliciously crafted HTTP request to back-end HTTP infrastructure to inject adversary data into HTTP responses (intended for intermediary and/or front-end client/victim HTTP agents communicating with back-end HTTP infrastructure) for the purpose of interfering with the parsing of HTTP response. The intended consequences of the malicious HTTP request and the subsequent adversary injection and manipulation of HTTP responses will be observed to confirm applicability of identified vulnerabilities in the adversary's plan of attack.
Continue the monitoring of HTTP traffic.
Inject additional HTTP headers to utilize various combinations of HTTP Headers within a single HTTP message such as: Content-Length & Transfer-Encoding (CL;TE), Transfer-Encoding & Content-Length (TE;CL), or double Transfer-Encoding (TE;TE), so that additional embedded message or data in the body of the original message are unprocessed and treated as part of subsequent messages by the intended target HTTP agent.
From these HTTP Header combinations the adversary observes any timing delays (usually in the form of HTTP 404 Error response) or any other unintended consequences.
For CL;TE and TE;CL HTTP headers combination, the first HTTP agent, in the HTTP message path that receives the HTTP message, takes precedence or only processes the one header but not the other, while the second/final HTTP agent processes the opposite header allowing for embedded HTTP message to be ignored and smuggled to the intended target HTTP agent.
For TE;TE HTTP headers combination, all HTTP agents in HTTP message path process Transfer-Encoding header, however, adversary obfuscation of one of the Transfer-Encoding headers, by not adhering strictly to the protocol specification, can cause it to be unprocessed/ignored by a designated HTTP agent, hence allowing embedded HTTP messages to be smuggled. See Mitigations for details.
Construct a very large HTTP message via multiple Content-Length headers of various data lengths that can potentially cause subsequent messages to be ignored by an intermediary HTTP agent (e.g., firewall) and/or eventually parsed separately by the target HTTP agent.
Note that most modern HTTP infrastructure reject HTTP messages with multiple Content-Length headers.
Monitor HTTP traffic using a tool such as a Network Protocol Analyzer.
Sperimentazione
[Generare risposte HTTP differenziali sperimentando con vulnerabilità identificate nelle risposte HTTP] L'attaccante invia richieste HTTP malformate alla infrastruttura HTTP di backend per iniettare dati adversari nelle risposte HTTP (destinate a agent HTTP intermediari e/o client/vittime front-end che comunicano con l'infrastruttura HTTP di backend) al fine di interferire con l'analisi delle risposte HTTP. Si osserveranno le conseguenze previste della richiesta HTTP malevola e dell'iniezione e manipolazione successiva delle risposte HTTP per confermare l'applicabilità delle vulnerabilità identificate nel piano di attacco dell'attaccante.
Continuare a monitorare il traffico HTTP.
Iniettare intestazioni HTTP aggiuntive per utilizzare varie combinazioni di intestazioni HTTP all’interno di un singolo messaggio HTTP, come: Content-Length & Transfer-Encoding (CL;TE), Transfer-Encoding & Content-Length (TE;CL), o doppio Transfer-Encoding (TE;TE), in modo che messaggi o dati embedded aggiuntivi nel corpo del messaggio originale non vengano elaborati e siano trattati come parte di messaggi successivi dall'agente HTTP di destinazione previsto.
Da queste combinazioni di intestazioni HTTP, l'attaccante osserva eventuali ritardi temporali (solitamente sotto forma di risposta HTTP 404 Error) o altre conseguenze non intenzionali.
Per le combinazioni di intestazioni HTTP CL;TE e TE;CL, il primo agente HTTP, nel percorso del messaggio HTTP che riceve il messaggio, dà priorità o elabora solo una delle intestazioni, ma non l’altra, mentre il secondo/agente finale elabora l’intestazione opposta, consentendo che i messaggi HTTP embedded vengano ignorati o maneggiati come traffico smuggled verso l'agente HTTP di destinazione.
Per la combinazione di intestazioni HTTP TE;TE, tutti gli agenti HTTP nel percorso del messaggio elaborano l’intestazione Transfer-Encoding, tuttavia, l’oscuramento di una delle intestazioni Transfer-Encoding da parte dell’attaccante, non aderendo strettamente alla specifica del protocollo, può causare che questa venga ignorata o non elaborata da un agente HTTP designato, consentendo così lo smuggling di messaggi HTTP embedded. Consultare le Mitigazioni per i dettagli.
Costruire un messaggio HTTP molto grande tramite multiple intestazioni Content-Length di varie lunghezze di dati, che può potenzialmente causare l’ignoramento di messaggi successivi da parte di un agente HTTP intermediario (ad esempio, firewall) e/o essere eventualmente analizzato separatamente dall'agente HTTP di destinazione.
Si segnala che la maggior parte delle infrastrutture HTTP moderne rifiuta messaggi HTTP con più intestazioni Content-Length.
Monitorare il traffico HTTP utilizzando uno strumento come un Network Protocol Analyzer.
Attack Techniques
-
Inject additional HTTP headers to utilize various combinations of HTTP Headers within a single HTTP message such as: Content-Length & Transfer-Encoding (CL;TE), Transfer-Encoding & Content-Length (TE;CL), or double Transfer-Encoding (TE;TE), so that additional embedded message or data in the body of the original message are unprocessed and treated as part of subsequent messages by the intended target HTTP agent. From these HTTP Header combinations the adversary observes any timing delays (usually in the form of HTTP 404 Error response) or any other unintended consequences. For CL;TE and TE;CL HTTP headers combination, the first HTTP agent, in the HTTP message path that receives the HTTP message, takes precedence or only processes the one header but not the other, while the second/final HTTP agent processes the opposite header allowing for embedded HTTP message to be ignored and smuggled to the intended target HTTP agent. For TE;TE HTTP headers combination, all HTTP agents in HTTP message path process Transfer-Encoding header, however, adversary obfuscation of one of the Transfer-Encoding headers, by not adhering strictly to the protocol specification, can cause it to be unprocessed/ignored by a designated HTTP agent, hence allowing embedded HTTP messages to be smuggled. See Mitigations for details.
-
Monitor HTTP traffic using a tool such as a Network Protocol Analyzer.IT: Injectare intestazioni HTTP aggiuntive per utilizzare varie combinazioni di intestazioni HTTP all’interno di un singolo messaggio HTTP, come: Content-Length & Transfer-Encoding (CL;TE), Transfer-Encoding & Content-Length (TE;CL), o doppio Transfer-Encoding (TE;TE), in modo che messaggi o dati incorporati nel corpo del messaggio originale siano non elaborati e trattati come parte di messaggi successivi dall’agente HTTP di destinazione previsto. Da queste combinazioni di intestazioni HTTP, l’attore malevolo osserva eventuali ritardi temporali (solitamente sotto forma di risposta HTTP 404 Error) o altre conseguenze non intenzionali. Per le combinazioni di intestazioni HTTP CL;TE e TE;CL, il primo agente HTTP, nel percorso del messaggio HTTP che riceve il messaggio, dà priorità o elabora solo una delle intestazioni, ignorando l’altra, mentre il secondo/ultimo agente HTTP elabora l’intestazione opposta, consentendo così che il messaggio HTTP incorporato venga ignorato e trasmesso in modo nascosto all’agente HTTP di destinazione previsto. Per la combinazione TE;TE, tutti gli agenti HTTP nel percorso del messaggio elaborano l’intestazione Transfer-Encoding; tuttavia, l’obfuscation da parte dell’attore malevolo di una delle intestazioni Transfer-Encoding, non aderendo strettamente alla specifica del protocollo, può causare che essa venga ignorata/non elaborata da un agente HTTP designato, permettendo così lo smuggling di messaggi HTTP incorporati. Vedere le Mitigazioni per i dettagli.
-
Continue the monitoring of HTTP traffic.IT: Injectare intestazioni HTTP aggiuntive per utilizzare varie combinazioni di intestazioni HTTP all’interno di un singolo messaggio HTTP, come: Content-Length & Transfer-Encoding (CL;TE), Transfer-Encoding & Content-Length (TE;CL), o doppio Transfer-Encoding (TE;TE), in modo che messaggi o dati incorporati nel corpo del messaggio originale siano non elaborati e trattati come parte di messaggi successivi dall’agente HTTP di destinazione previsto. Da queste combinazioni di intestazioni HTTP, l’attore malevolo osserva eventuali ritardi temporali (solitamente sotto forma di risposta HTTP 404 Error) o altre conseguenze non intenzionali. Per le combinazioni di intestazioni HTTP CL;TE e TE;CL, il primo agente HTTP, nel percorso del messaggio HTTP che riceve il messaggio, dà priorità o elabora solo una delle intestazioni, ignorando l’altra, mentre il secondo/ultimo agente HTTP elabora l’intestazione opposta, consentendo così che il messaggio HTTP incorporato venga ignorato e trasmesso in modo nascosto all’agente HTTP di destinazione previsto. Per la combinazione TE;TE, tutti gli agenti HTTP nel percorso del messaggio elaborano l’intestazione Transfer-Encoding; tuttavia, l’obfuscation da parte dell’attore malevolo di una delle intestazioni Transfer-Encoding, non aderendo strettamente alla specifica del protocollo, può causare che essa venga ignorata/non elaborata da un agente HTTP designato, permettendo così lo smuggling di messaggi HTTP incorporati. Vedere le Mitigazioni per i dettagli.
-
Construct a very large HTTP message via multiple Content-Length headers of various data lengths that can potentially cause subsequent messages to be ignored by an intermediary HTTP agent (e.g., firewall) and/or eventually parsed separately by the target HTTP agent. Note that most modern HTTP infrastructure reject HTTP messages with multiple Content-Length headers.IT: Injectare intestazioni HTTP aggiuntive per utilizzare varie combinazioni di intestazioni HTTP all’interno di un singolo messaggio HTTP, come: Content-Length & Transfer-Encoding (CL;TE), Transfer-Encoding & Content-Length (TE;CL), o doppio Transfer-Encoding (TE;TE), in modo che messaggi o dati incorporati nel corpo del messaggio originale siano non elaborati e trattati come parte di messaggi successivi dall’agente HTTP di destinazione previsto. Da queste combinazioni di intestazioni HTTP, l’attore malevolo osserva eventuali ritardi temporali (solitamente sotto forma di risposta HTTP 404 Error) o altre conseguenze non intenzionali. Per le combinazioni di intestazioni HTTP CL;TE e TE;CL, il primo agente HTTP, nel percorso del messaggio HTTP che riceve il messaggio, dà priorità o elabora solo una delle intestazioni, ignorando l’altra, mentre il secondo/ultimo agente HTTP elabora l’intestazione opposta, consentendo così che il messaggio HTTP incorporato venga ignorato e trasmesso in modo nascosto all’agente HTTP di destinazione previsto. Per la combinazione TE;TE, tutti gli agenti HTTP nel percorso del messaggio elaborano l’intestazione Transfer-Encoding; tuttavia, l’obfuscation da parte dell’attore malevolo di una delle intestazioni Transfer-Encoding, non aderendo strettamente alla specifica del protocollo, può causare che essa venga ignorata/non elaborata da un agente HTTP designato, permettendo così lo smuggling di messaggi HTTP incorporati. Vedere le Mitigazioni per i dettagli.
Step 4
Exploit[Perform HTTP Response Smuggling 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 Response Smuggling] Utilizzando le conoscenze acquisite nella sezione sperimentale sopra, inserire un messaggio per causare una delle conseguenze.
Sfruttare le tecniche identificate nella Fase di Sperimentazione.
Attack Techniques
-
Leverage techniques identified in the Experiment Phase.