fbpx

HTTP Header – Cos’è? E a Cosa Serve?

Abbiamo accennato agli Header HTTP nel precedente articolo “Analisi Sito Web con UrlScan“. Oggi cercheremo di spiegare che cosa è un Header HTTP in Poche semplici parole!

Supponendo che vogliate inviare una “Raccomandata” ad un vostro amico, che cosa fate? inserite il Destinatario, ed il Mittente. Il Mittente (siete voi) serve qual’ora il Destinatario (il vostro amico) voglia rispondere alla lettera, oppure se il Destinatario non è in Casa e la lettera deve ritornare al Mittente! Perfetto, questo è chiaro. ma se si tratta di un sito Web?

Dunque, stessa cosa, o quasi….

Facciamo un esempio semplice. Prendete il vostro Smartphone o Tablet che sia…  e digitate nel motore di ricerca “www.HackerWebSecurity.com/Hacker-Shop/” . La Risposta sarà la risorsa (URL) che avete richiesto di visionare!

Ma costa succede dietro le quinte? Succede che il vostro Device (Client) invia una richiesta HTTP (Hyper Text Transfer Protocol) al Web Server finale (contenente la risorsa), e chiede di visionarla. La risorsa finale può (sostanzialmente) rispondere in due modi, Si ci sonoNo Non ci Sono. In questo frangente Client & Server si scambiano delle informazioni che somigliano più o Meno a questo:

Prima di capire nel Tecnico che cosa si sono detti Client & Server, cerchiamo di capire che cosa si sono detti in “italiano

DIALOGO: 
– ClientSono Windows 7 con Browser Firefox voglio vedere la risorsa avente protocollo HTTPS situata nel seguente percorso /Hacker-Shop/ presente nel seguente indirizzo Web www.HackerWebSecurity.com
– Server: Qui Server Aruba-Proxy la risorsa è disponibile (Status 200). Ti assegno un codice identificativo (Cookie) la data della richiesta è Giovedi 10 Gennaio 2018.

Ecco, questo esempio va preso molto alla leggera 😀 !!!

Quello che in sostanza cerco di dire è che il Client si identifica al Server, riportando le informazioni essenziali, quindi i dati identificativi della macchina che fa la richiesta (UserAgent), il mio Win7 con Browser Firefox, in qusto caso. La risorsa che si desidera visionare, quindi il percorso web /Hacker-Shop/ ed il dominio di appartenenza HackerWebSecurity.com.

Il Web Server si “presenta” (Aruba-Proxy) ed automaticamente assegna un codice identificativo all’utente, quindi un Cookie (altro non è che un numero casuale univoco), registra la data della richiesta, etc…

Vediamo più nel tecnico le varie voci cosa significano:

Request headers

– :path : /hacker-shop/ (il percorso web della risorsa)
– accept-encoding : gzip, deflate (è il tipo di compressione accettata)
– upgrade-insecure-requests : 1 (il Client esprime la sua preferenza per il tipo di crittografia da usare)
– user-agent : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0 (identifica il nostro Device)
– accept : text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 (il client accetta contenuti di tipo testo, html, immagini, etc…)
– :authority : www.hackerwebsecurity.com (l’host richiesto)
– :scheme : https (il device chiede di usare il protocollo HTTP(S)icuro)
– :method: GET (la richiesta è di tipo GET. Si tratta di verbi HTTP usati per eseguire un certo tipo di azione. In questo caso GET, letteralmente “ottenere”, è il verbo più usato per richiedere informazioni ad un Web Server. Per essere più chiari:

Metodo GET = Richiedere di visionare una specifica risorsa Web. Ed è anche il metodo più usato quando fate una ricerca in internet.
Metodo POST= inviare dati ad un Web Server. Es. quando compilate un form di iscrizione e cliccate su “invia”, state effettuando una richista POST inviando cosi dati al Web Server.

Sui verbi HTTP approfondiremo meglio in un altro articolo)

Response headers

– date : Wed, 10 Jan 2018 23:44:34 GMT (il web server registra data e ora della vostra richiesta)
– content-encoding : gzip (il contesto, quindi la pagina web, ha una compressione di tipo gzip)
– server : aruba-proxy (il server si identifica, in questo caso si chiama “aruba-proxy”)
– x-powered-by : PHP/5.5.38 (linguaggio di programmazione usato dal Web server)
– vary : Accept-Encoding (accetta la codifica)
– content-type : text/html; charset=UTF-8 (il contesto, quindi la pagina web, è di tipo testo e html)
– status : 200 (codice 200 indica che la risorsa è disponibile)
– https : on (il protocollo HTTP(S)icuro è attivo)
– set-cookie : wfvt_2835910639=5a56a5628983f; expires=Thu, 11-Jan-2018 00:14:34 GMT; Max-Age=1800; path=/; secure; httponly (viene rilasciato un Cookie al visitatore, cioè voi…dei Cookie parleremo altrove 😉 )

Da tenere presente che le voci di questi Header possono variare da richiesta a richiesta. A questo punto dovremmo avere un idea di che cosa è un Header HTTP ed a cosa serve. Gli Header HTTP sono presenti anche quando inviate un Email, e qui ritorniamo all’esempio iniziale “di quando inviamo una raccomandata per posta”…

…Ma per un PenTester e/o un Investigatore Digitale cosa rappresenta l’Header HTTP?

Rappresenta una importante risorsa a livello investigativo di cui Parleremo Molto dettagliatamente nei prossimi articoli! Vedremo come Risalire alla posizione di un Mittente Email e come identificarlo!! Tratteremo anche il discorso vulnerabilità degli Header HTTP dei siti Web e come sfruttarli per organizzare un attacco ad un sito Web! Per ora è Tutto, Grazie Per la Lettura!

Se Ti Piacciono i Nostri Articoli seguici su Facebook @HackerWebSecurity

Fate delle prove con Wireshark ed intercettate il vostro traffico, guardate cosa succede durante la vostra normale navigazione in internet  😉

Leggi la Nostra Demo Wireshark (può aiutare)!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *