Site-urile pot trimite dinamic utilizatorii către alte pagini web folosind redirecționări. În cazul în care nu au fost validate în mod corespunzător, un atacator poate folosi acest lucru pentru a redirectiona utilizatorii care vizitează un site de încredere catre site-ul atacatorului. Acest lucru nu afectează imediat site-ul dvs., dar permite atacatorilor să folosească utilizatorii care au încredere în site-ul dvs. pentru a-i convinge să viziteze site-uri infectate sau site-uri phishing aflate sub controlul atacatorilor.
Atacatorul poate furniza un link care pare de încredere pentru un utilizator obisnuit. Imaginați-vă o bancă on-line cu datele de conectare clientului, care oferă un url cum ar fi:
www.bank.com?next=login.html
Site-ul bancii se asteapta ca utilizatorul sa fie redirectionat catre o pagina de autentificare. Un atacator ar putea publica o adresa (prin email sau internet) catre:
www.bank.com?next=attackersite.html
Acest link va directiona de fapt utilizatorii care fac clic pe el catre site-ul atacatorului, chiar dacă URL-ul pare autentic. Site-ul atacatorului ar putea fi făcut să arate identic cu site-ul băncii reale, astfel incat se pot fura datele de autentificare ale utilizatorilor in momentul in care încearcă să se log-eze.
Vulnerabilitatea care permite atacul de redirecționare poate fi utilizata în alte tipuri de atacuri cross site scripting, catre site-ul dvs., care pot fi mult mai periculoase pentru site sau utilizatori. In unele cazuri, motoarele de cautare (google) pot decide ca site-ul tau este periculos pentru securitatea utilizatorului, si ii vor miscora nota acestuia sau il vor bloca in rezultatele de cautare.
Mai grav, utilizatori sunt expusi riscurilor sa isi piarda conturile sau anumite informatii. Revenind la exemplul de mai sus, in cazul în care clientul bancii se astepta la un formular de autentificare, iar atacatorul creează un formular de autentificare fals, identic sau asemanator cu cel real, atunci orice client legitim care încearcă să se conecteze pentru utilizarea site-ului, ii va dezvalui atacatorul numele de utilizator și parola. Afacerea dvs. online ar putea fi inchisa in urma unei astfel de brese de securitate, din cauza neincrederii si pagubelor create utilizatorilor.
Cauza principala a unui astfel de atac de redirectare, este validarea în mod necorespunzător la intrare a solicitarilor GET sau POST, care este apoi transformata într-o comandă de redirecționare. În PHP, s-ar putea vedea următorul cod care este vulnerabil la un atac de redirecționare:
<?PHP header('Location: ',$_GET['myurl']); ?>
Comanda GET indica datele trimise in URL, astfel incat site-ul tau sa aiba o adresa URL valida pentru clienti, de genul:
https://www.mysite.com?myurl=see_products.html
Un atacator ar putea în schimb convinge utilizatorii să folosească link-ul următor, care i-ar directiona catre un site de atacatori:
https://www.mysite.com?myurl=https://www.doing_evil.com/infect_this_pc
Același lucru poate fi realizat si cu parametrii POST, dar site-ul atacatorul nu va apărea in URL, ceea ce l-ar face mai greu de detectat de catre pentru utilizatori (codul PHP de mai sus ar include POST in loc de GET, în acest caz).
Pentru rectificarea acestei probleme, este nevoie sa valitate parametrii GET sau POST sa contina numai adrese la care vreti sa ajunga userii.
Există trei moduri principale de a remedia acest tip de atac:
URL Redirector Abuse
HTTP Response Splitting
URL Redirection to Untrusted Site (Analysis)
HackerAdvisor.com include scanari numeroase si diferite, care te vor ajuta sa-ti securizezi site-ul, inclusiv te vor ajuta sa descoperi daca ai setari facute necorespunzator care te fac vulnerabil la atacuri prin URL.