Arhivă etichetă divizare header

dehackeradvisor™

Divizarea raspunsului header-ului HTTP

Divizarea raspunsului header-ului HTTP este un atac menit sa fure datele utilizatorilor de pe un site. Poate fi folosit pentru a executa atacuri de tip cross site scripting, pentru furtul datelor utilizatorilor sau pentru alterarea design-ului unui site, astfel incat sa para ca asa a fost creat de catre proprietar.

 

Cat de serioasa este divizarea raspunsului HTTP ?

 

De fiecare dată când un browser solicită o pagină web, informații cunoscute sub numele de header-e sunt trimise de la pagina cate browser. Acestea îndeplinesc funcții importante, cum fi, sa transmita browser-ului ce limbă ar trebui să afișeze, în cazul în care ar trebui să fie executate anumite actiuni, precum și modul în care site-ul a fost scris. Spre exemplu, aici este un antet de probă de la Google:

 

https://www.google.com/
GET / HTTP/1.1
Host: www.google.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive

In timpul scrierii codului site-ului, exista multe situatii in care ati vrea sa actualizati dau sa setati dvs. header-ul. De exemplu, o actiune uzuala, este de a stabili antetul referrer în PHP. Ca o simplă ilustrare de divizare a răspunsului, sa presupunem ca ati avut un cod care a stabilit un antet folosind un parametru găsit în URL-ul (un parametru GET):

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

Acest cod va seta header-ul cu locația pentru pagina ta. O persoană rău intenționata ar putea recunoaște acest lucru, și ar putea să încerce să modifice header-ele trimise de pagina ta. Dacă observați header-ul de exemplu (pagina de Google) fiecare tip de header începe de pe o linie nouă. Un atacator ar putea modifica modul în header-ul este setat prin schimbarea adresei URL:

www.mysite.com/page1.php?redirect="www.a badsite.com"

 

Dar acest exemplu nu este cel mai rău lucru care se poate întâmpla. Dat fiind faptul ca sfârșiturile de linie vin intre antete, un atacator ar putea schimba chiar intregul mod de afisare al site-ului dvs.:

www.mysite.com/page1.php?redirect=\r\nContent-type:text/html\r\n<html>new site!</html>

Acest lucru ar introduce un header nou (content type) și un cod HTML, care va fi plasat în partea de sus a paginii, ca si cand ar fi trebuit sa fie acolo. URL-ul introdus de mai sus nu este un atac complet (ar fi necesare mai multe header-e) dar ilustrează modul în care funcționează un atac de acest fel.

 

Cum afecteaza asta securitatea mea ?

 

Divizarea de header este la fel de periculoasa ca si orice alt atac menit sa fure informatii de utilizatorii de pe site.

Indemnarea unui utilizator sa faca click pe aceste adrese speciale nu este atat de dificil pe cat pare, din moment ce un atacator poate posta o astfel de adresa pe un forum popular, in tag-uri html <img>. Sunt multe alte modalitati de a pacali utilizatorul sa acceseze o anumita adresa.

Prin urmare, divizarea antetelor ar trebui sa fie considerata la fel de periculoasa ca si orice alta modalitate de furt al datelor de utilizator cum ar fi cross site scripting.

 

Prevenirea Divizarii Raspunsului

 

Ca multe alte atacuri, acesta se bazează pe datele transmise de către utilizator, sau care pot fi modificate de către utilizator. De fiecare dată cand setați informațiile de headet în interiorul aplicatiei dumneavoastră, asigurați-vă că datele nu pot fi modificate de catre un utilizator, sau ca sunt securizate corespunzator. Acest lucru se poate face pentru informațiile din header prin verificarea cu atenție a datelor de intrare, si a lungimii lor.

Chiar daca datele sunt verificate, nu există o soluție universala pentru orice atac posibil, dar verificarea datelor este un prim pas. Elimina caracterele cum ar fi Line Feed (\ r, sau LF, și alte variante) șau New Line (\ n, CR, precum și alte variante).

In cele din urma, asigurati-va ca serverul dvs. și codul web scripting sunt actualizate. PHP incepand cu versiunea 5.1.2 a adaugat mecanisme de aparare pentru divizarea header-ului, daca se utilizează codul de header descris mai sus. Pastrarea tuturor aspectelor legate de serverului dvs. actualizate poate ajuta la blocarea celor mai comune forme de atac.

 

Resurse Suplimentare

 

HTTP Response Splitting How To
Response Splitting Examples

 

Cauta Setarile necorespunzatoare pe serverul tau

HackerAdvisor.com  include scanari numeroase si diferite, care te vor ajuta sa-ti securizezi site-ul, inclusiv te vor ajuta sa desscoperi daca esti divizarea header-ului HTTP.