Rosetta Flash — кодирование SWF для вызова из JSONP

Michele Spagnuolo, специалист по безопасности Google, написал утилиту, которая может закодировать любой SWF-файл любым словарем.Зачем это нужно? Все очень просто — такой файл можно передать в качестве параметра callback в JSONP на сайте, с которого вам нужно получить информацию, таким образом, вы сможете обойти Same Origin Policy.Эта проблема была достаточно давно известна, однако, ей не уделяли особого внимания именно из-за того, что получить SWF-файл, состоящий только из символов, которые можно задать как параметр callback, было крайне сложно, однако, сейчас такой инструмент появился.Утилита использует zlib, алгоритм Хаффмана и брутфорс контрольной суммы ADLER32.Из крупных сервисов, были уязвимы:

Сервисы Google (accounts.google.com, books.google.com, maps.google.com) Youtube Ebay Instagram Twitter Tumblr Olark Как же уязвимость использовалась? Предположим, есть два домена: подконтрольный нам miki.net и тот, который нужно атаковать trovatel.netНа trovatel.net есть JSONP-скрипт, который принимает параметр из печатаемых символов:

http://trovatel.net/vulnerable_jsonp.php? callback= Имеется секретная страница, которая выдает секрет, если на нее зайти с установленной cookie

http://trovatel.net/secret/secret.php При заходе на страницу miki.it/RosettaFlash/, пользователя ждет такой код:

Где miki.it/RosettaFlash/log.php — скрипт-логгер.Браузер пользователя загрузит SWF-файл как бы от сайта trovatel.net, откроет страницу с секретом (и с правильными cookie, конечно же) и отправит ее содержимое на удаленный сервер злоумышленника. Все довольно просто и типично.

На данный момент, Adobe выпустила обновление Flash Player, в котором эксплуатация данной уязвимости невозможна.

Ссылки Информация в блоге автораБолее подробная информация в PDFУтилита на GithubCVE-2014–4671

© Habrahabr.ru