XSS через тег img, избыточные точки с запятой? - PullRequest
4 голосов
/ 23 июня 2011

Я просматривал упражнения WebGoat, и на один вопрос они задают, что вы создаете предупреждение JavaScript с помощью тега img.

Их решение таково:

<img src=x onerror=;;alert('XSS') />

Глядя на их решение, мне интересно, почему перед фактическим предупреждением нужны две (в отличие от одной) точки с запятой?

1 Ответ

1 голос
/ 28 июня 2011

Действительно, точки с запятой не нужны. Я только что протестировал один и тот же тег без точек с запятой в FF5 и Chrome, они оба отправляют предупреждения с этим

<img src=x onerror=;;alert('XSS') />
<img src=x onerror=alert('XSS') />
<img src="x" onerror="alert('XSS')" />

я думаю, что они пытаются остановить событие onerror в первой точке с запятой, а затем вывести фиктивный код из события в предупреждении

Я попробовал это

<img src=x onerror=alert('eventfire');;alert('XSS') />

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

ответ? похоже, делает то же самое без точек с запятой (может быть, для старых браузеров, которые плохо разбирают html и выполняют предупреждение вне контекста события ???)

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