Уязвимость позволяет производить некоторые действия вконтакте от чужого имени. В дальнейшем человека, от лица которого мы будем совершать эти действия, буду называть "жертва". Теория Суть уязвимости: 1. Сайт вконтакте.ру устроен таким образом, что если закрыть страницу сайта, а потом снова ее открыть, страница откроется, не запросив пароль. 2. Сайту, как я понял, все равно каким методом мы посылаем данные из формы - GET или POST - он их обрабатывает одинакого. Мы можем воспользоваться этим. Сформировав определенный URL в адресной строке браузера, мы можем производить некоторые действия. Но, сайт не так просто сделан. 1. В некоторых формах есть скрытые поля с секретным кодом. Не зная этот код, мы ничего не сможем сделать. Но узнать его не просто, поэтому такие формы я не буду затрагивать в статье. 2. Сайт проверяет значение $_SERVER['HTTP_REFERER'], но мы обойдем эту проверку с помощью Flash. Для того, чтобы все отработало успешно, нужно: 1. Чтобы у жертвы в браузере был включен Flash. (У большинства людей, сидящих в этой социальной сети, он включен, т.к. без него не работают многие сервисы контакта: музыка, видео, приложения и т.д.) 2. Чтобы жертва была залогинена вконтакте. (Большинство людей не нажимают кнопку "Выход" вконтакте, даже когда выходят из-за компа, поэтому с этим условием, думаю, проблем тоже не возникнет.) Для примера, попробуйте ввести в адресной строке браузера в новом окне следующий URL: http://vkontakte.ru/groups.php?act=enter&gid=777107 Вы автоматически вступили в группу "В Контакте | Безопасность". Теперь выйдите из группы и попробуйте перейти по точно такой же ссылке: http://vkontakte.ru/groups.php?act=enter&gid=777107 Теперь вступить в группу вам не удалось, а все по одной причине: переходя по ссылке с любого сайта, в контакт передается значение предыдущей страницы, и, в целях безопасности, он блокирует такие действия. Мы же, чуть позже, обойдем эту защиту. Приведу еще пример - откройте в новом окне следующую страницу: http://vkontakte.ru/settings.php?act=addToBlackList&id=1 Вот и создатель этого сайта оказался у вас в игноре. Подобным образом можно совершать разные действия (их список в конце статьи) Понятно, что если вы кинете жертве подобную ссылку, жертва поймет, в чем подвох. Мы же попытаемся открыть эту страницу незаметно для жертвы. Но, прежде, чем использовать эту уязвимость на жертве, мы потренеруемся на себе. В примере мы создадим скрипт, добавляющий людей в ту же группу -"В Контакте | Безопасность". От вас требуются элементарные знания HTML. Выглядеть будет это так: Мы кидаем жертве ссылку на наш сайт. Жертва открывает эту ссылку. На сайте находится скрытый фрэйм. Этот фрэйм ссылается на специальный Flash-скрипт, который перенаправляет нас на все тот же адрес: http://vkontakte.ru/groups.php?act=enter&gid=777107. Т.к. идет перенаправление через флэш, то адрес предыдущей страницы не передастся, а значит контакт выполнит наше действие. Когда в скрытом фрэйме откроется эта страница, жертва незаметно добавится в группу "В Контакте | Безопасность". Приступим? Практика. Шаг 1. Создаем флэшку. Для начала, создадим эту флэшку. Для ее быстрого создания я написал специальный скрипт: http://swfgen.m0nster.tu2.ru Скрипт запросит у вас URL. Вводите туда http://vkontakte.ru/groups.php?act=enter&gid=777107 и жмите "ОК". Скрипт вернет вам ссылку на готовую флэшку. Качаем флэшку на комп и переименовываем в более читаемый вид. Пусть будет vkontakte.swf Шаг 2. Создаем HTML страничку. Теперь создаем HTML-страничку. Пусть она будет называться просто index.html. Пишем там любую чушь, главное, чтоб не вызвать подозрения у жертвы, что тут что-то неладное. Что написать на странице - дело ваше. После этого вставляем куда-нибудь в тело странички скрытый |