I moderni server sono suscettibili agli attacchi HTTP Splitting

1

Nota: so come funziona HTTP Splitting.

Nota 2: Non sto lavorando in WebGoat. Sto cercando di farlo da solo.

Sto tentando di imitare l'attacco HTTP Splitting sulla mia macchina. Per questo ho scritto questo codice php:

<?php
header("Location: " . $_GET['page']);
?>

E poi inserisco il seguente URL:

http://localhost/webgoat/httpsplitting.php?page=index%0aContent-Length:%200%0a%0aHTTP/1.1%20200%20OK%0aContent-Type:%20text/html%0aContent-Length:%2017%0a%0a<html>Hacked</html>

Ma poi anche quando intercetto la richiesta usando webscarab, vedo che queste intestazioni non sono incluse nella risposta del server web.

Inoltre ho visto in wireshark che la sequenza LF (cioè% 0a) non viene convertita nel suo formato ASCII e viene usata come stringa e non come feed di riga.

Quindi, sono giunto alla deduzione che i moderni server web non sono suscettibili a questo attacco. Sono corretto ??

    
posta Rash 18.12.2013 - 06:57
fonte

3 risposte

2

Questo non è un problema con il tuo browser, ma piuttosto un problema con la funzione di intestazione PHP che è immune agli attacchi di divisione HTTP. Lo stesso vale per la chiamata alla funzione set-cookie.

Puoi leggere ulteriori informazioni al riguardo qui link

Un breve estratto:

 [...] Although response splitting is not specific to PHP, the PHP interpreter 
contains protection against the attack since version 4.4.2 and 5.1.2. [1]
    
risposta data 18.12.2013 - 12:31
fonte
0

Non sembra un problema del browser: se il server accetta una nuova riga in input e sputa direttamente in un'intestazione HTTP senza eseguire l'escape, si tratterebbe di una vulnerabilità puramente sul lato server.

Questo particolare attacco di suddivisione di intestazione è ora mitigato in PHP stesso. La funzione header() ti darà un errore se passi una stringa con una nuova riga in.

    
risposta data 18.12.2013 - 12:10
fonte
0

Gli attacchi HTTP Splitting si concentrano sul lato server come conseguenza di una cattiva analisi degli input e delle funzioni vulnerabili. Per un browser è impossibile indovinare quando un'intestazione è cattiva o no. Questi sono inviati dal server.

Probabilmente leggi questo Splitting della risposta HTTP OWASP

HTTP response splitting occurs when: Data enters a web application through an untrusted source, most frequently an HTTP request. The data is included in an HTTP response header sent to a web user without being validated for malicious characters.

    
risposta data 18.12.2013 - 12:38
fonte

Leggi altre domande sui tag