CSS history exploit

Veľmi ma zaujal článok CSS exploit a neexistující soukromí na webu, pojednávajúci o zneužiteľnosti jednej feature CSS (dokonca už verzie 1). Zneužiteľná je schopnosť odlišne štýlovať odkazy vedúce na navštívené url, teda :visited. Pomocou tohoto CSS selektoru môžete nastaviť spomínaným odkazom odlišný štýl ako nenavštíveným, čo je pre používateľa príjemná vlastnosť.

Zároveň je to ale skrytý informačný kanál z histórie browsera do oblasti prístupnej JavaScript-u ale informácia sa môže dostať mimo Vášho počítača aj inak.

Príklad: dajme tomu, že tento exploit ide zneužiť e-shop. Na svoju stránku schová odkazy na konkurenčné e-shopy a nastaví im ID v tvare “konkurenciameno” (napríklad konkurenciaeshop2, konkurenciaeshop3), podľa toho, na ktoré e-shopy odkaz vedie. V CSS potom použije takéto pravidlá:


#konkurenciaeshop2 { background-image: url(log.php?eshop2); }
#konkurenciaeshop2 { background-image: url(log.php?eshop3); }
...

Skript log.php potom vráti prázdny obrázok, ale popri tom dostane a zaloguje aj informáciu o tom, že užívateľ, ktorý si obrázok pýta, navštívil danú stránku. Túto informáciu môže uložiť k užívateľovým session dátam a následne ich zneužiť.

Toto je primitívny spôsob zneužívania takéhoto chovania browsrov, ale pomocou JavaScriptu sa dá doviesť k dokonalosti. Nevýhodou je, že vždy môžete otestovať iba konkrétnu URL. Ale skript sa môže chovať tak, že dostane zoznam úvodných stránok, ktoré otestuje. Následne oznámi servru, ktoré z úvodných stránok má užívateľ (obeť?) v histórii, na čo mu server zašle ďaľšiu sadu URL-čiek (na danej doméne), ktoré skript tiež otestuje. Takto je možné dokonca zistiť napríklad aké produkty si užívateľ prehliadal na konkurenčných stránkach a podľa toho upravovať cenu, za ktorú by mu ich e-shop (útočník?) predal.

Samozrejme tento exploit nieje taký závažný ako niektoré iné, ktoré inštalujú rôzny malware, ale zaujímavé (a nebezpečné) na ňom je, že toto chovanie je z užívateľovho hľadiska feature, navyše podporovaná takmer všetkými browsermi.

Leave a Comment