![]() |
Всем известно, что XSS на сайте позволяет выполнять любые запросы и получать любые страницы сайта от имени авторизованного пользователя. То есть, дает практически неограниченный контроль над действиями пользователя. Этот контроль ограничивается только доменом, на котором расположен уязвимый скрипт.
Если все действия пользователь выполняет на домене mail.site.com или site.com, а XSS находится на news.site.com, единственный вариант доступа к данным пользователя - получить его куки и использовать сессию на своем компьютере. Но сессия может быть привязана к IP, куки недоступны для JS (httpOnly) или просто не устанавливаться на уязвимом поддомене. Никакой практической пользы от таких XSS нет... или все таки есть? Ниже пример такой бесполезной XSS на cs*.vkontakte.ru. Сессия ВК привязана к IP, а вся информация пользователей находится на основном домене vkontakte.ru |
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:
Как оказалось, хэши для защиты от CSRF и XSS в этом запросе не проверяются. Параметры from_host, mid, hash и rhash необязательны. Отправлять можно GET-ом. url=http://google.com/ Код HTML:
url=http://google.com/? Код HTML:
url: 'http://www.google.com/?%3C/%3E=',url=http://www.google.com/?= Код HTML:
url: 'http://www.google.com/?=',Пассивка найдена, но при попытке отправить в запросе url=http://www.google.com/?= оказывается, что фильтруется слово "cookie". Обходится этот фильтр просто: PHP код:
http://cs4567.vkontakte.ru/upload.php?act=parse_share&url=http://www.google.com/?= p.s.: взято из темы в MoA (04.11.11), работает до сих пор. upd: "vkontakte.ru/vk.com XSS" - /showthread.php?t=301195 |
1) Чтение страниц с другого домена.
Обмен данными между страницей и фреймом возможен только если они находятся на одном домене. Домен хранится в свойстве document.domain. Политика безопасности позволяет изменить это свойство только на текущий домен или наддомен. Например, на сайте news.site.com мы можем установить document.domain='site.com'и обратно document.domain='news.site.com'. Есть еще одна проблема. Для обмена данными необходимо, чтобы обе страницы присвоили одинаковое имя домена свойству document.domain, даже если одна из страниц расположена на нужном домене. То есть, с news.site.com можно прочитать страницу, находящуюся на site.com или на mail.site.com, если на этой странице свойству document.domain присвоено значение 'site.com' Пример. Получение хеша для отправки сообщения на стену: PHP код:
Чтение некоторых страниц сайта - лучше, чем ничего, но хотелось бы большего. Посмотрим на страницу http://vkontakte.ru/al_profile.php?al=-1 Код HTML:
var locDomain = location.host.toString().match(/[a-zA-Z]+\.[a-zA-Z]+\.?$/)[0];Код HTML:
parent.ajax._framedone('123405678', [1,"\/username",1]);Выполнения этих двух условий достаточно, для изменения домена XSS на другой домен того же уровня или наддомен. Пример: PHP код:
XSS на поддомене cs4567 http://cs4567.vkontakte.ru/upload.php?act=parse_share&url=http://www.google.com/?= Та же XSS, но выполняется уже на самом vkontakte.ru (пробелы убрать) http://cs4567.vkontakte.ru/upload.php?act=parse_share&url=http://www.google.com/?= |
Дополнение к пункту 2
Цитата:
PHP код:
http://cs4567.vkontakte.ru/upload.php?act=parse_share&url=http://www.google.com/?= [offtop] Несколько строк кода на страницах my.mail.ru позволяют работать с этой соц.сетью через XSS любых поддоменов мейлру PHP код:
upd: http://www.yandex.ru/i-social__closer.html#ddom=yandex.ru https://passport.yandex.ru/i-social__closer.html#ddom=yandex.ru [PHP] [COLOR="#000000"]q=location.hash.substr(1).split('&'); for (vari=0,l=q.length;i[COLOR="#007700"] |
Перенесите в паблик (/forum31.html)
|
красаучек
|
Почитал, познавательно спасибо.
|
Цитата:
|
Где то я уже видел это, кстати на ачате...
|
Цитата:
Цитата:
p.s.: если кто-то увидит подобную тему, напишите ссылку. |
| Время: 17:26 |