XSS на любом сайте

XSS на любом сайте

Здрасте, %username%.



Давеча новость увидел, XSS на любом сайте с помощью Yahoo тулбара . Блин, а ведь круто, когда плагин известного разработчика участвует в построении страницы. Но ещё раньше этой новости у меня была другая, подобная ошибка в плагине, конечно немного поскромнее, но все же. Я дождался фикса, теперь думаю рассказать.
nВ Яндекс.Браузер встроен удобный переводчик . Выделяешь текст на незнакомом языке, нажмешь на стрелочку и вот тебе перевод. Это чертовски удобно, не нужно делать копипаст, выделил незнакомое слово или словосочетание — и готово. Ну у меня с иностранными языками херово, поэтому мне он очень по-душе . Так вот.

Перевод в плагине приходит в json, стоит nosniff (не получится запилить xss в старых версиях IE), и к тому же обрабатывается на translate.yandex.net, то есть куки яндекса не украсть. Если выделить <script>alert(1)</script>Pи перевести — ничего не произойдет. Черт, зачем я пытаюсь заинтриговать, я ж уже написал в заголовке, что будет…

Ладно, без воды: в результате неправильной обработки ответа в плагине выполнялся произвольный js код на любом сайте, где пытаешься сделать перевод.
yandex translate3 300x152 XSS на любом сайте

Вот, например, в gmail

yandex translate 300x150 XSS на любом сайте

А вот в twitter

yandex translate2 300x139 XSS на любом сайте

А это flickr

Flickr, Yahoo, Google, Pinterest, Youtube, Amazon, Twitter, да тысячи других сайтов, где можно воспроизвести alert(1), главный критерий — это пользовательский текст, если можно разместить свой текст (хоть и под фильтрами) переводчик выполнит скрипт. Вообще, изначальный вектор, который я нашёл, был <i onmouseover=alert(document.domain) <>>, в ответе приходило:

{"code":200,"lang":"en-ru","text":["<i onmouseover="alert(document.domain)" <="">>"]}(прикольно, да?)

Мне сначала никто не поверил, пришлось записывать видео:



nВот такая скромненькая, но интересная ошибка, в реальной жизни такое эксплуатировать можно только через социальную инженерию (подсунуть текст на непонятном языке с скриптом и Pсказать — чувак, переведи это). Ну да ладно, привет семье, %username%, а я afk, лето же!

Безопасность xss уязвимость
Alt text

Подписывайтесь на каналы "SecurityLab" в TelegramTelegram и TwitterTwitter, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.