Может кто-нибудь сказать мне, почему / как этот вектор XSS работает в браузере? - PullRequest
6 голосов
/ 15 сентября 2011

Я перенес несколько XSS-атак на мой сайт. Следующий фрагмент HTML - это вектор XSS, который был введен злоумышленником:

<a href="mailto:">
<a href=\"http://www.google.com onmouseover=alert(/hacked/); \" target=\"_blank\">
<img src="http://www.google.com onmouseover=alert(/hacked/);" alt="" /> </a></a>

Похоже, что скрипт не должен выполняться, но, используя инструмент разработки IE9, я смог увидеть, что браузер переводит HTML в следующее:

<a href="mailto:"/>
<a onmouseover="alert(/hacked/);" href="\"http://www.google.com" target="\"_blank\"" \?="">
</a/>

После некоторого тестирования выясняется, что \ "делает атрибут" onmouseover "" живым ", но я не знаю почему. Кто-нибудь знает, почему этот вектор успешен?

1 Ответ

5 голосов
/ 16 сентября 2011

Итак, для суммирования комментариев: добавление символа перед кавычкой превращает кавычку в часть значения атрибута вместо того, чтобы отмечать начало и конец значения.Это работает так же:

href=a"http://www.google.com onmouseover=alert(/hacked/); \"

HTML допускает атрибуты без кавычек, поэтому он становится двумя атрибутами с заданными значениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...