«Уязвимость» устроя родитель-ребенок

23 Июл
2012

С приходом социальных сетей, flash-приложения стали популярными, как и их разработка, что привело к большому количеству некачественного кода (наверно, общеизвестный факт). Но не суть (надо было же что-то сказать вначале?).

Во многих таких социальных приложениях есть «аватары», и грузятся они, в большинстве своем, через API. Что нам мешает подделать ответ и передать его приложению? Правильно, ничто, давно есть множество утилит для этого. Многие не проверяют какого типа данные пришли по ссылке (будь то jpeg, gif, swf), от этого и появляется уязвимость.

Объясню подробнее на примере (эту уязвимость нашел в 13 лет, что позволило мне увести 10к голосов, лол)

При входе в приложение идет запрос к API, получается ответ с ссылкой на фото, имя, фамилия, город и т.д., затем, это все отправляется на сервер, а с сервера всем остальным юзверям пользователям. То есть, когда начинается игра, у всех отображается твой медиа контент. Недолго думав, я решил вместо картинки вставлять swf. По началу, это было просто ради фана (анимированная картинка со звуком), но потом я пошел дальше.

В коде своей swf’ки написал следующее:
var obj:Object = new Object();
obj = Object(parent.parent);
obj.visible = false;

И, о чудо, контейнер аватара стал невидимым. Таким же способом я получил доступ к родителю контейнера, и так далее, пока не дошел до «самого главного». Что же вышло? Я могу получить доступ к flashVars любого пользователя (где хранится ключ авторизации, id и т.д.). Ничто не помешало написать конечный вариант своей «вирусной» флешки. Когда кому-то загружалась моя аватарка, их данные передавались ко мне на сервер, сохранялись, и запускался бесконечный цикл (который, как известно, убивает флэш-плагин напрочь). Затем, спокойно можно было заменить свой ключ авторизации на их, и получить полный доступ к приложению под их аккаунтом.

Таким же способом (подмены на swf), можно получить доступ к функциям и свойствам объектов, исключая «невозможность скомпилировать декомпилированное-измененное».
По материалам Хабрахабр.



загрузка...

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

Наверх