Втр, 2010-09-21 21:08

Активная XSS на twitter

Новая брешь в системе безопасности Twitter сегодня была применена на тысячах аккаунтов, переправляя пользователей на вебсайты без их согласия. Сама уязвимость довольно неприятна, потому что работает при вызове события Mouseover, что позволяет открывать вебсайты и всплывающие окна только тогда, когда пользователь проводит мышкой по ссылке.
Описание и скриншот под катом

Уязвимость использует js-функцию onMouseOver, которая генерирует событие, когда указатель мыши наводится на блок. Применительно к твиттеру уязвимость открывала простые pop-up окна, перекидывала пользователей на разного рода ресурсы (включая порноресурсы), а также творила иные безобразия.
Лучшие способ защиты от подобного «нападения» — использовать специальные приложения для доступа к сети Twitter: TweetDeck, Twitter for iPhone и другие, потому что уязвимость прежде всего применима на веб-интерфейсе.
Разработчики твиттера долгое время не комментировали эту оплошность, но совсем недавно стало известно, что уязвимость закрыта: «This should now be fully patched and is no longer exploitable».
Пример сработавшего скрипта приведен на скриншоте ниже:
Началось всё отсюда (банальное раскрашивание через css) twitter.com/RainbowTwtr, автор не известен.
Достаточно отпостить твитт вида
twitter.com/mr_the#@"onmouseover="jAvascript:alert('Ha-ha! XSS!');"/
и будет много-много радости.
Собственно причина — плохой парсер ссылок, без должной фильтрации.
В целях безопасности, рекомендую временно отключить выполнение Javascript на twitter.com.
UPD: В NewTwitter xss не работает.
UPD2: На 15:52 (по Киеву) закрыли возможность отправлять подобные твитты. Старые всё ещё работают.
UPD3: 16:46 по Киеву, уязвимость официально закрыли — status.twitter.com/post/1161435117/xss-attack-identified-and-patched