Jump to content
Guest Nemessis

[RST] Yahoo! Security Research - Cum poti manipula un sistem

Recommended Posts

Guest Nemessis

Yahoo.com este unul dintre gigantii web la ora actuala ce imparte pe rand cu Google primul loc in topul celor mai vizitate site-uri din intreaga lume. Este destul de greu de crezut ca administrarea este slaba dar intotdeauna factorul uman va avea o influenta majora in exploatarea unui sistem si furtul de informatii si prezenta acestui factor se face resimtita in orice domeniu. Veti putea afla din acest tutorial unele idei personale ce pot dovedi riscul major al acestor factori prezenti in serviciile Yahoo!.

Cross Site Scripting (XSS) si implicatiile majore ale acestei vulnerabilitati

Multi stiu deja ca Yahoo! este zilnic victima atacurilor de tip XSS ce pot duce la furtul conturilor utilizatorilor. Aceste vulnerabilitati de tip XSS se afla in mai multe dintre subdomeniile yahoo.com si cu minime cunostinte javascript pot fi gasite si exploatate de oricine. In general cei ce doresc sa foloseasca aceasta metoda au ca principal scop accesarea adreselor de email apartinand unor persoane vizate direct de atacatori si furtul de informatii ori stergerea tuturor mesajelor trimise/primite de la aceea adresa. In primul rand voi detalia cum se pot gasi aceste vulnerabilitati (ceea ce va fi probabil un deliciu pentru cine doreste sa o faca), dupa care voi explica ce alte optiuni mai poate avea atacatorul in momentul in care scripturile sunt deja up and running.

1. Gasirea vulnerabilitatilor in serviciile Yahoo.

Cea mai mare problema a Yahoo.com cred ca o reprezinta paginile vechi, uitate pe serverele lor, pagini ce nu au beneficiat de atentia creatorilor si de o protectie anti XSS.

Am gasit destule vulnerabilitati XSS jucandu-ma cu dork-uri Google ce faciliteaza gasirea acestor pagini vechi. Un exemplu foarte bun ar putea fi urmatorul:

intext: “Copyright © 2004 Yahoo!” site:.yahoo.com

Un astfel de subdomeniu cu probleme XSS, ce contine textul “Copyright © 2004 Yahoo!” in paginile sale, este:

http://audience.broadcast.yahoo.com/browserinfo.asp?bhcp=1

Va las pe voi sa gasiti vulnerabilitatea dar va avertizez ca nu este deloc vizibila. Raspunsul se afla in sursa paginii.

Desigur ca va trebui sa va jucati cu dork-urile Google si sa folositi functia –criteriu (ex. intext: “Copyright © 2004 Yahoo!” site:yahoo.com –autos –profiles , va elimina subdomeniile autos.yahoo.com si profiles.yahoo.com din rezultatele cautarii), astfel facilitand gasirea vulnerabilitatilor mult mai usor. Schimbati anul din dork si puneti in loc de 2004 orice an incepand de la 1995 pana in 2007.

Alte dork-uri pentru gasirea vulnerabilitatilor Yahoo:

filetype:jsp site:.yahoo.com

filetype:cgi site:.yahoo.com

filetype:php site:.yahoo.com

filetype:pl site:yahoo.com

Nu va asteptati ca orice rezultat sa fie bun, din contra, majoritatea linkurilor gasite nu va vor ajuta foarte mult dar totusi de aici porneste cautarea cu cele mai mari sanse de succes. Schimbati voi tipul fisierului din cautare in functie de ideile ce va vin sau XSS-urile deja gasite in acest tip de fisiere. Atentie: conteaza extrem de mult domeniul google folosit la cautare. Google.com nu va afisa aceleasi rezultate ca si Google.ro.

Luam ca exemplu primul dork si primul link afisat de catre Google.ro.

Primul link afisat folosind criteriul de cautare “filetype:jsp site:.yahoo.com” este:

http://kr.maps.yahoo.com/maps/map.jsp

Cu putina cautare in acest subdomeniu veti gasi urmatorul XSS:

http://kr.maps.yahoo.com/maps/main/MapMail.jsp?LEVEL="><script>alert(document.cookie)</script> (gasit de Elias)

Majoritatea fisierelor .jsp de pe domeniile Yahoo.com au probleme XSS.

O alta problema o reprezinta acele pop-up ce nu afiseaza url. Am gasit cateva pop-upuri cu probleme si cred ca sunt un factor major in gasirea vulnerabilitatilor XSS. Folositi butonul F11 si veti putea vizualiza url-ul acelui pop-up. Daca exista in continutul linkului un “=” sau un “?” puteti incerca clasica metoda “><script>alert(1)</script> imediat dupa aceste semne. Desigur ca nu doar “=” si “?” pot fi indicatorii unui posibil xss insa imi este imposibil sa enumar toate posibilitatile (probabil nu stiu nici eu multe dintre ele).

Un exemplu de XSS (functioneaza doar pe IE6 si probabil Opera) aflat intr-un pop-up este:

http://wizards.yahoo.com/members/tools/publishing/wizards/server/popup/image?_wizard=-//Yahoo//Wizards//AboutMe&_stylesheet=-//Yahoo//Stylesheets//Wizards//Core&_domain=us.z&_whose=ours?=javascript:alert(document.cookie)&imgwidth=180&imgheight=180&_filestore=geocities

In mare acestea sunt criteriile de cautare cele mai valoroase in gasirea vulnerabilitatilor XSS in Yahoo!. Flama a reusit sa creeze dupa o idee de-a mea un crawler web pentru gasirea rapida a vulnerabilitatilor de tip XSS aflate in subdomeniile Yahoo.com si se pare ca versiunea de inceput a dat rezultate bune. Acest crawler va ramane insa privat mult timp de azi inainte asa ca va rog sa nu faceti cereri.

2. Metode de folosire a vulnerabilitatilor XSS din Yahoo!

Dupa cum spuneam si la inceputul tutorialului, majoritatea folosesc XSS pentru a capata acces in casutele de mail. Totusi ce s-ar mai putea face cu un XSS in afara de a fura mailurile? Raspunsurile sunt urmatoarele:

- se poate creea un iframe in pagina vulnerabila ce va arata identic cu o pagina de logare Yahoo

- se poate creea un iframe in pagina vulnerabila ce va invita sa faceti ultimul update de securitate al Yahoo! messenger (spre exemplu), de fapt aceasta pagina fiind un scam menit sa va faca sa downloadati si sa rulati un program spyware

- se poate injecta in pagina vulnerabila un iframe ce contine un exploit

- se poate folosi pentru spread in toate adresele de mail aflate in address book, astfel un numar record de victime poate fi atins extrem de rapid si fara prea mult efort din partea atacatorului

- poate fi folosit pentru a executa un xss aflat pe un domeniu total diferit de Yahoo!

- poate fi folosit pentru a se inchide contul victimei sau pentru a capata parola (vezi explicatia mai jos)

Factorul uman (social engineering) + Cross Site Scripting

Problema majora in cazul acestui tip de atac este limitarea accesului, prin folosirea unui cookie furat, la maxim 24 ore de la logarea victimei pe mail, fapt ce ingreuneaza considerabil posibilitatea de a “spiona” pe termen indelungat mesajele trimise/primite de catre victima. Yahoo! punea la dispozitia membrilor posibilitatea de a seta durata sesiunii dar din cate vad nu mai este aceea optiune sau probabil am uitat eu unde o gasisem.

In primul rand voi explica ce stie majoritatea ca nu se poate face cu accesul capatat prin cookie:

- nu se poate sterge contul – adevarat

- nu se poate afla parola – adevarat

- nu se afla raspunsul la intrebarea secreta – adevarat

- nu se poate schimba parola – adevarat

- daca victima sau atacatorul dau logout expira cookie – fals

- daca victima schimba parola cookie nu mai este valabil – adevarat

Acum sa luam pe rand cateva dintre punctele enumerate mai sus si sa le clasificam din punct de vedere al unui social engineer:

Nu se poate sterge contul – eronat.

Stiati de existenta Geocities.com? Unii probabil ca stiu altii probabil ca nu. Geocities.com este un serviciu de webhosting gratuit ce apartine corporatiei Yahoo. Pentru a va putea hosta un site pe domeniile lor aveti nevoie doar de un username Yahoo si acceptarea/respectarea termenilor si conditiilor impuse de ei. Aici intervine factorul uman si probabil o mica scapare de securitate deoarece in cazul in care ati reusit sa furati cookie de la un cont puteti sa activati fara probleme si serviciul de webhosting. Si totusi care este legatura? Este extrem de simplu pentru atacator dupa ce capata cookie de la victima sa activeze webhostingul si sa urce niste pagini ce contravin intr-un totul legislatiei U.S. Cu 2-3 pagini ce contin carti de credit furate, imagini pedofilice, imagini porno, scam-uri sau orice altceva ce contravine regulilor impuse de Yahoo! Geocities si o reclamatie trimisa chiar de catre atacator la reprezentantii Geocities, contul victimei va fi cu siguranta inchis. Cu cat continutul paginilor este mai ilegal cu atat mai mult exista sansa ca tot contul sa fie inchis de catre administratori si poate duce chiar si la anchetarea victimei pentru ceva ce nu a facut.

Nu se poate afla parola – posibil eronat

Cookie de la Yahoo! contine informatii vitale despre contul utilizatorilor. Din cookie se pot afla urmatoarele date:

Username

Gender

Year Of Birth

ZipCode

Country

In momentul in care atacatorul capata cookie de la victima se poate folosi de informatiile stocate in acesta pentru a afla datele de mai sus plus informatii despre ce mailuri a trimis/primit/sters. Informatiile de mai sus se pot afla folosind un cookie decoder ca acesta: http://sec.drorshalev.com/dev/yahoo/vbs.asp si chiar daca nu va vine sa credeti pot influenta mult decizia unui administrator Yahoo! in anumite cazuri. Voi descrie o posibila metoda de inginerie sociala asupra unui administrator Yahoo!:

Sa spunem ca am capatat acces in mailul cuiva cu ajutorul unui cookie stealer. Primul lucru pe care il fac este sa memorez cat mai bine continutul mailului, numele pe care il are trecut in cont, ip-urile de la care victima a trimis mailuri in mod constant, detalii pe care doar victima le poate sti. Folosind cookie aflu si restul datelor (sex, anul nasterii, zip, tara), date pe care le voi folosi pentru... un apel telefonic la serviciul de relatii cu clientii al Yahoo! inc. prin care va cere recuperarea contului respectiv “furat” chiar de catre proprietarul de drept. Un inginer social bun trebuie sa ia in calcul posibilitatea ca operatorul se verifice cu mare atentie toate detaliile, inclusiv ip-urile ce s-au logat in acel cont. In cazul de fata, dupa ce atacatorul a capatat toate informatiile ce il pot ajuta sa se dea drept proprietarul de drept al contului va trebui sa faca cel mai neasteptat lucru pentru victima. Sa o anunte ca i-a intrat in contul de mail si ca i-a aflat parola folosind un program spyware aflat in computerul victimei. Victima cu siguranta va accesa contul de la alt pc si isi va schimba parola. Mare greseala.

De ce a facut atacatorul asa ceva si unde a gresit victima? Pentru ca daca parola ar fi fost schimbata de la acelasi ip cu care victima acceseaza in mod constant casuta de mail, un operator Yahoo! destul de vigilent sa verifice ip-urile de pe care s-a logat cel mai des acel cont ar observa ca proprietarul contului a schimbat parola iar convorbirea cu atacatorul ar fi intrerupta fara drept de apel.

In clipa in care victima a schimbat de la un alt ip parola contului, atacatorul va suna la customer support regulat si va face scandal pana i se va acorda atentia necesara. Din momentul in care operatorul incepe sa ceara detalii despre continutul contului si detaliile despre inregistrare putem spune ca deja treaba este pe jumatate rezolvata. Atacatorul va invoca o “amnezie” in privinta raspunsului la intrebarea secreta si va furniza fara nicio problema detalii amanuntite despre continutul casutei de mail si datele contului aflate din cookie. In acest fel se acopera cam toate posibilitatile de a intra operatorul la banuieli iar sansele ca atacatorul sa obtina parola chiar de la Yahoo! cresc considerabil.

Nu se afla raspunsul la intrebarea secreta – posibil eronat

Din moment ce atacatorul va afla din cookie zip si tara ii poate trimite victimei un mail cu un mesaj ce indeamna la reintroducerea raspunsului de la intrebarea secreta intr-un scam ce pare a fi o pagina de Yahoo!. Posibilitatea de a functiona aceasta metoda depinde de cunostintele victimei in domeniul phishing dar trebuie sa recunoastem ca este mult mai credibil decat sa ii cereti parola.

Alte probleme Yahoo!

- daca cineva va afla parola si va schimba zip si tara, raspunsul la intrebarea secreta este inutil deoarece nu mai corespund datele pe care le stiati cu cele din baza de date.

- Yahoo! Webmessenger faciliteaza furtul de cookie folosind xss pe baza de link

NOTA: semnul de copyright este transformat automat in phpbb in "©". Pentru a folosi dork-urile de yahoo inlocuiti "©" cu caracterul respectiv.

Autor: Nemessis @ RSTZONE

Link to comment
Share on other sites

Un astfel de subdomeniu cu probleme XSS, ce contine textul “Copyright © 2004 Yahoo!” in paginile sale, este:

hxxp://audience.broadcast.yahoo.com/browserinfo.asp?bhcp=1

Va las pe voi sa gasiti vulnerabilitatea dar va avertizez ca nu este deloc vizibila. Raspunsul se afla in sursa paginii.

Asta este un repost sau chiar este un XSS acolo?

M-am uitat in sursa si nu gasesc nimic. Adica e clar ca se afiseaza in pagina informatii de environment si atunci am incercat pe user-agent, referer, in query string, ... dar nimic. Totul e filtrat la greu.

Sunt foarte curios unde este XSS-ul. Daca mai este ... :)

Link to comment
Share on other sites

Nu am IE6. Pe calculator am doar IE8 beta si Firefox.

Oricum, ma gandesc ca problema poate sa fie doar pe pagina de pornire, sau in URL, ceva XSS de gen http://site/file.asp?ceva=<xss> sau prin headere.

Pentru ca form-ul afiseaza un mesaj fix indiferent de input.

Daca nu e in URL, nu e usor de exploatat (eventual cu Flash ca sa poti sa fake-uiesti headerele).

Link to comment
Share on other sites

Nu am IE6. Pe calculator am doar IE8 beta si Firefox.

Oricum, ma gandesc ca problema poate sa fie doar pe pagina de pornire, sau in URL, ceva XSS de gen http://site/file.asp?ceva=<xss> sau prin headere.

Pentru ca form-ul afiseaza un mesaj fix indiferent de input.

Daca nu e in URL, nu e usor de exploatat (eventual cu Flash ca sa poti sa fake-uiesti headerele).

nu l-am gasit, dar e vorba de exploatarea datelor din tabel. Transmite una din ele sub forma <script>... Parerea mea.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...