Межсайтовый скриптинг как оружие

NSD (www.nsd.ru)

Xakep, номер #063, стр. 063-082-1

Захват аккаунтов при помощи CSS

Cross-site scripting (CSS/XSS) – это мощный инструмент, с помощью которого хакер может получать незаконный акцес к разным сетевым услугам: к чужим почтовым ящикам, аккаунтам на форуме, чатам и т.д. Особенность этой атаки заключается в том, что юзер ее вообще не почувствует, т.к. CSS не палит себя ни в файрволах, ни в антивирусах. А юзер догадается, что его учетную запись скоммуниздили, только когда увидит появившиеся постинги от своего имени :).

В чем суть атаки?

Межсайтовый скриптинг возможен лишь в тех случаях, когда удается встроить в веб-страницу опасный код на языке JavaScript, VBScript, Java, ActiveX и др. При этом сам код будет исполнен на стороне пользователя, просмотревшего эту веб-пагу. Для вставки своих скриптов хакер может воспользоваться guestbook’ами, чатами и форумами. Однако уже давным-давно прошли те времена, когда можно было безнаказанно украшать свою мессагу в чатах и форумах любыми тегами. В современных скриптах форумов фильтры, обрабатывающие введенный пользователем текст, всячески препятствуют вставке потенциально опасного содержимого, но об этом мы поговорим чуть позже.

Что же можно делать с юзером, исполнившим на своей тачке JavaScript-код? С помощью javascript’а можно сделать практически все что угодно: начиная от определения цвета background’a на странице и заканчивая многочисленными способами насолить пользователю. А если еще задействовать и уязвимость в браузере, то атакующий сможет даже выполнять команды операционной системы на компе пользователя. Кроме того, внедрив JavaScript в форум или чат, хакер может получить доступ к текущей учетной записи пользователя.

Как же захватывают аккаунты, используя JavaScript?

Чтобы юзеру не приходилось набирать пароль каждый раз, когда он заходит в форум, разработчики придумали систему авторизации через cookie. Сессия, которая генерируется из логина и пароля пользователя, записывается к юзверю на хард в текстовый файлик и помещается в папку C:\Documents and Settings\имя_пользователя\Cookies. Каждый кукис маркируется доменом, т.е. скрипт, принадлежащий к одному домену, имеет доступ только к тем кукисам, которые были записаны скриптами этого домена. Так вот, когда юзер заходит на форум, скрипт запрашивает кукис и проверяет, совпадает ли сессия, хранящаяся на винте, с сессией, которая лежит в базе данных форума. И если они совпадают, то форум распознает юзера как законного пользователя аккаунта.

Сам понимаешь, если хакер похитит данные из этого кукиса юзверя и передаст их сервису как свои, то система распознает взломщика как реального пользователя! Так вот, в JavaScript’e как раз имеются средства для чтения кукисов :). Поэтому, встроив троянский код, например, в сообщение на форуме, хакер получит доступ к кукисам юзверей, просмотревших его мессагу. А поскольку JavaScript поддерживается всеми современными браузерами, то уязвимыми окажутся все пользователи…

Процесс хищения cookie

Что сделает хакер, чтобы спионерить cookie? Сначала он подготовит cgi-скрипт, который будет принимать данные из кукиса и сохранять их в файле. Как этот скрипт выглядит на perl’e:

Содержание  Вперед на стр. 063-082-2
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001