Splitting risposta HTTP in pratica

4


Hai mai visto la divisione della risposta HTTP in ambiente di laboratorio?

Esistono molti esempi di vulnerabilità di HTTP Response Splitting.

Ho usato il vecchio PHP e sono riuscito a ottenere 2 risposte dal server che sono visibili in wireshark:

HTTP/1.1 302 Found
Date: Sun, 30 Aug 2015 11:56:15 GMT
Server: Apache/2.0.47 (Win32) mod_ssl/2.0.47 OpenSSL/0.9.7b PHP/4.3.3RC2-dev
X-Powered-By: PHP/4.3.3RC2-dev
Location: 
Content-Length: 0

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 25

<html>Hacked !</html>
Content-Length: 0
Content-Type: text/html; charset=ISO-8859-1

Se lo visualizzo in BurpSuite , allora vedo html dalla seconda risposta, ma il browser non lo mostra e ha un comportamento diverso invece dipende dal browser.

Quando guardo la risposta in Intestazioni HTTP Live per FireFox, vedo che la stringa "HTTP / 1.1 200 OK" è assente.

Come è possibile vedere l'intestazione HTTP Response Splitting for Location nel browser?

    
posta Sergey Klevogin 31.08.2015 - 08:28
fonte

1 risposta

1

Per gli attacchi che utilizzano difetti di applicazione, come nel tuo esempio, l'obiettivo è quello di alimentare il contenuto della risposta 302 (con una posizione vuota e un vero contenuto HTML. Quindi la prima risposta, la risposta 302, non avrà una Content-Length: 0 Metti il 'hacked' in questa pagina 302, con una lunghezza.Non viene data alcuna posizione in modo che il reindirizzamento abbia esito negativo.La risposta successiva (la risposta ufficiale) viene scartata.In questa modalità non ti interessa la seconda risposta.

Un comportamento del browser sulla ricezione di una risposta per qualcosa non ancora richiesto è abbastanza difficile da prevedere. A meno che il pipelining HTTP non venga utilizzato nel browser, questa risposta verrebbe semplicemente ignorata.

Ma l'obiettivo dell'attacco di divisione HTTP non è sempre il browser.

Tali problemi possono essere utilizzati per un attacco di avvelenamento da cache complesso. L'autore dell'attacco costruirà la pipeline di query (di solito senza browser), in modo che la seconda query ottenga la risposta aggiuntiva e possa essere avvelenata in una cache.

    
risposta data 08.10.2015 - 23:30
fonte

Leggi altre domande sui tag