Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Implementacja HTML5 pozwala na „pożarcie” lokalnego dysku
Jak się okazuje, nieprawidłowa implementacja mechanizmu HTML5 Web Storage pozwala witrynom internetowym na pożarcie całego wolnego miejsca na lokalnych dyskach odwiedzających je internautów. Poniżej przedstawiamy praktyczny przykład wykorzystania takiej podatności.
HTML5 Web Storage to mechanizm, który pozwala na przechowywanie danych serwisów internetowych wprost na lokalnych dyskach internautów. Mechanizm jest podobny do dobrze znanych cookie. Jedną z ważnych różnic jest jednak dopuszczalna wielkość magazynu. WebStorage pozwala na przechowanie od 5MB do 10MB danych w zależności od przeglądarki internetowej, a klasyczne cookie są ograniczone do 4KB.
Standard przewiduje ochronę przed stronami próbującymi jakichkolwiek nadużyć w zakresie ilości dostępnego miejsca:
User agents should guard against sites storing data under the origins other affiliated sites, e.g. storing up to the limit in a1.example.com, a2.example.com, a3.example.com, etc, circumventing the main example.com storage limit.
Jednak mimo powyższych zaleceń, implementacje mechanizmu dostępne w aktualnych wersjach kilku popularnych przeglądarek pozwalają na obejście limitu poprzez wykorzystanie wielu subdomen, na przykład:
- 1.filldisk.com,
- 2.filldisk.com,
- 3.filldisk.com itd.
Przykład praktycznego wykorzystania tej podatności można przetestować na własnej przeglądarce pod tym adresem
Specjalnie przygotowana witryna jest w stanie w szybkim czasie zapełniać nasz lokalny dysk podobiznami… kotów. W chwili obecnej problem dotyczy przeglądarek:
- Internet Explorer,
- Google Chrome,
- Safari.
Co ciekawe, problem w ogóle nie dotyczy Firefoksa, dzięki temu, że ta popularna przeglądarka poprawnie implementuje wszystkie zalecenia standardu Web Storage.
Opera zaś pyta użytkownika o zgodę na zapis kolejnej porcji danych.
Podsumowując, warto jeszcze raz podkreślić, że twórcy standardu przewidzieli odpowiednią ochronę. Jak to jednak często bywa, problem leży w samej implementacji zastosowanej przez twórców poszczególnych przeglądarek.
– Wojciech Smol, (wojciech.smol<at>sekurak.pl)