Artykuły dotyczące tematu: Frans Rosén

dodany: 02.01.2013 | tagi: , , , ,

Znów wpadka Facebooka

3

Badacz bezpieczeństwa Frans Rosén odkrył podatność Facebooka na atak XSS. Co ciekawe stało się to przy okazji badania DropBoksa pod kątem bezpieczeństwa, w którym stwierdził także możliwość przeprowadzenia ataku Cross Site Scripting. Odkrywca zauważył, że korzystając z dysku webowego DropBoksa w przypadku próby zmiany nazwy pliku na znak niedozwolony (czyli |   < > ?), otrzymamy komunikat o błędzie:

fb1

Co innego, gdy zmienimy nazwę pliku w lokalnym folderze, a następnie przeprowadzimy synchronizację. Wtedy bezproblemowo można dokonać ataku. Rosén zgłosił problem autorom programu, trafiając tym samym na listę podziękowań. Problem został oczywiście wyeliminowany przez autorów.

Jednak to nie koniec odkryć Fransa – niedawno Facebook rozszerzył swoje możliwości o współpracę z DropBoksem, dzięki czemu można m.in. udostępniać pliki z DB dla grup utworzonych na Facebooku. Podczas próby udostępnienia pliku z ‚”><img src=x onerror=alert(document.domain)>.txt na fejsubkowej „ścianie” pojawił się wpis z linkiem prowadzącym do udostępnionego elementu. Sęk w tym, że po kliknięciu w niego było możliwe wstrzyknięcie dowolnego skryptu. Rosén oczywiście po raz kolejny zachował się honorowo i zgłosił problem przez „fejsubkowy” system zgłoszeń dot. bezpieczeństwa WhiteHat.

stored-xss-facebook

Oto jak wygląda udostępniony link:

https://www.facebook.com/ajax/sharer/?s=44&appid=210019893730&p%5B0%5D=entry_id&p%5B1%5D=user_that_shared_it_first

Powyższy do załadowania skryptu wymaga interakcji użytkownika. Jednak Frans „wygóglał” metodę modyfikacji jego, aby skrypt uruchamiał się odraz po kliknięciu na link:

https://www.facebook.com/sharer/sharer.php?s=44&appid=210019893730&p%5B0%5D=entry_id&p%5B1%5D=user_that_shared_it_first

Warunkiem wykonania zaszytego skryptu jest tylko status zalogowania użytkownika. Nie był to bynajmniej problem DropBoksa, gdyż Frans odkrył to samo zachowanie przy korzystaniu z innego podpiętego pod FB serwisu Pinterest.com –  po stworzeniu pliku z nazwą wcześniej użytego schematu, tj. ‚”><img src=x onerror=alert(document.domain)> – Facebook zachował się identycznie, dając możliwość uruchomienia skryptu.

Co ciekawe programiści, zamiast naprawić od razu problem, byli ciekawi jak Fransowi udało się stworzyć tak nietypową nazwę pliku, choć to było najmniej istotne. Powyższy problem odkrywca przetestował także na wersji mobilnej FB z poziomu iPhone’a – domyślnie skrypt się nie uruchamiał, gdyż aplikacja przekierowywała na główną stronę Facebook.com – wystarczyło jednak zmienić parametr m2w, aby wyłączyć automatyczne przekierowanie i uruchomić złośliwy link.

 

Facebook wziął uwagi do siebie i naprawił problem na drugi dzień od zgłoszenia, a odkrywca został nagrodzony kwotą 3’500 USD.

Twórcy serwisu społecznościowego sami sobie zasłużyli na słabnącą popularność, dodatkowo tylko pogarszają swoją sytuację wprowadzając kolejne możliwości, bez uprzedniego przeanalizowania bezpieczeństwa – to nie była jedyna wpadka – z okazji nowego roku wprowadzono nową funkcję Midnight Delivery, która służyła do publikacji życzeń noworocznych. Sęk w tym, że życzenia mógł odczytać praktycznie każdy, gdyż link prowadzący do nich miał schemat przyrostowy – wystarczyło zmienić  ostatnią liczbę xxx w poniższym linku, by odczytać dowolne życzenia:

http://www.facebookstories.com/midnightdelivery/confirmation?id=xxxx

Problem może nie tak poważny, ale ta notoryczność błędów aż razi – naprawiono go później.