Про Cookies Куки(печеньки) не снифят а воруют. Существует два способа своровать печеньки: 1) Стандартный способ 2) Нестандартный способ Подробности записи и чтения печенек. Для того, чтобы записать печеньку клиенту на машину(то бишь в бравзер), сервер отсылает пакет, с дополнительным полем, в котором указаны названия печенек, данные для каждого названия, срок годности и дополнительное необязательное поле для ограничения распространения этой печеньки на определенную диру и все соответствующие поддиры. После того как сервер записал клиенту печеньку, клиент передает печеньки обратно при КАЖДОМ последующем запросе на данный сервер. Таковы правила безопасности, что куки записанный одним доменом не может быть прочитан с другого домена. То есть, например, скрипт www.uinc.ru/script.cgi при возврате данных записывает на сервер печеньку cookie=data. Далее, когда сервер открывает любую страничку с www.uinc.ru, например www.uinc.ru/news/index.shtml, то этой страничке бравзером будет передано поле с печенькой: cookie=data. Но когда бравзер заходит на странички с другого сервера то передача печенек прекращается, так как печеньки были записаны сервером www.uinc.ru. Если не понятно, то подробнее написано на http://www.citforum.ru, там лежит несколько подробных статей об этом, с работающими примерами на всех языках для записи и чтения печенек. Теперь о воровстве печенек. Как уже было упомянуто выше, проблемма кроется в том, что печеньки записанные одним сервером не могут быть прочитаны с другого сервера. Что можно сделать, чтобы обойти данное условие? 1) Стандартный способ. Используем Cross Site Scripting для воровства кукиса. В данном способе пойдет ТОЛЬКО язык программирования который запускается(интерпретируется) на клиенте (например: Ява скрипт). Цель - каким-то образом запустить яваскрипт со странички домена, печеньки которого необходимо своровать. Яркие примеры использования Cross Site Scripting(XSS) для воровства печенек: + Недавняя история с сервисом Hotmail и Microsoft Passport. Уязвимость заключалась в том, что своровав печеньку юзера от MS Passport системы - можно было сэмулировать сессию юзера удаленно, то есть зайти в эккаунт жертвы и наделать много нехороших вещей. Для того чтобы своровать печеньки юзера, необходимо было запустить ява скрипт со странички на любом домене, который входит в MS Passport систему. Народные умельцы придумали как это сделать - был один скрипт на таком сервере который отображал ошибку - "не найден такой-то путь на сервере", если вместо ложного пути вставить хтмл код с ява скриптом, то он отображался с помощью скрипта отображения ошибок и естественно выполнялся. Далее, написать скрипт, который бы читал кукис жертвы для данного домена и отсылал его злоумышленнику - как три пальца ... Дополнительная информация по этому нашумевшему делу: http://alive.znep.com/~marcs/passport/ + С помощью XSS воруют чужие почтовые адреса, например такой способ обмана идеален для веб систем Рамблера, Яндекса и Мейл.ру. Технология: находится слабое место в системе фильтрации почтовых сообщений от потенциально опасного кода, чтобы при прочтении письма в бравзере жертвы запускался ява скрипт. Далее посылаешь жертве письмо с яваскриптом, уже приготовленным для обхода фильтров. Скрипт ворует(просто читает) куки для почтового домена(например mail.ru) и отсылает эти куки удаленному скрипту(cgi). Скрипт получает куки, и с их помощью генерирует первичный пакет для ХТТП запроса, который сэмулирует продолжение сессии. То есть сервер увидит запрос от скрипта с правильными кукисами и возвратит запрошенную страничку(спосок писем, настройки, итд - по вашему усмотрению) - эмуляция сессии работает, потому что наши почтовые сервисы при логине не делают привязку к IP адресу. То есть достаточно своровать session id и кукисы, чтобы проникнуть в чужой ящик и даже отобрать его. Некоторые способы обхождения почтовых фильтров можно найти здесь: http://www.uinc.ru/articles/33/index.shtml 2) Нестандартный способ. Этот способ использует уязвимости клиентов(бравзеров) для воровства печенек. Почти каждую неделю на багтраке публикуются сообщения о уязвимостях в IE, Mozilla и Opera, которые позволяют читать печеньки клиента которые не принадлежат домену, с которого исполняется код. Я не специалист по данному способу так как считаю его безнадежным(не люблю персонализированные решения, предпочитаю универсальные решения которые будут работать в любой среде). Под каждый браузер нужно подбирать свою уязвимость, это занимает много времени и сил. Подробнее о разных багах в бразерах связанных с чтением кукисов можно найти здесь: http://www.securityfocus.com Буду рад дополнительным вопросам, но предупреждаю, что на вопросы про способ 2 я отвечать не буду. Удачи. Uzbeck aka NiFiGaSebe! mafia_zhivet@hotmail.com Прошу у всех прощения за ошибки в тексте. Данные заметки я писал в ответ на какой-то вопрос в форуме, и скорее всего они будут частичным основанием для будущей статьи про воровство кукисов и эмулирование сессий.