Как посмотреть какой запрос отправляет браузер

Обновлено: 07.07.2024

[Edit: 11/30/09 11: 55]

В настоящее время, чтобы обойти это, я запускаю Fiddler рядом с Chrome для просмотра моих запросов, но если есть способ сделать это из браузера, я бы предпочел это.

Я знаю, что это старая нить, но я думал, что я вмешаюсь.

Chrome в настоящее время имеет встроенное решение.

  1. использовать CTRL+SHIFT+I (или выберите Current Page Control > Developer > Developer Tools . В более новых версиях Chrome щелкните значок гаечного ключа > инструменты > Инструменты разработчика.) включить инструменты разработчика.
  2. из инструментов разработчика нажмите на . Если это еще не так, включите его для сеанса или всегда.
  3. выберите "XHR" под-кнопка.
  4. начать AJAX call .
  5. вы увидите, что элементы начинают отображаться в левой колонке под "Resources" .
  6. нажмите на ресурс, и есть 2 вкладки, показывающие заголовки и возвращаемое содержимое.

самый актуальный ответ на это: они перечислены под кнопкой "сеть" в инструментах разработчика, а не под "ресурсами", как раньше.

вы также можете использовать эту ссылку в Chrome для получения более подробной информации, чем инспектор.

Это показывает журнал всех запросов браузера при открытии

Не знаю, в какой версии chrome это доступно, но я нашел параметр "Console-Log XMLHttpRequests" (нажав на значок в правом нижнем углу инструментов разработчика в chrome на mac)

можно использовать Саша что является хорошим бесплатным инструментом.

откройте DevTools и нажмите F1 для доступа к настройкам. Найдите раздел консоли и установите флажок "Log XMLHttpRequests".

теперь все ваши AJAX и другие подобные запросы будут регистрироваться в консоли.

Я предпочитаю этот метод, потому что он обычно позволяет мне видеть все, что я ищу в консоли без необходимости перейти на вкладку Сеть.

спасибо всем, кто пытается помочь в этом посте

у меня ubuntu 13.10, а моя версия chrome-34.0

для моей ситуации это работает

теперь вы должны увидеть новую панель перед вами запрос

на шаге 5 Phil "ресурсы" больше не доступны в новой версии Chrome. Вам нужно щелкнуть значок страницы рядом со страницей Ajax, указанной в нижней панели, со столбцами Name, Method, Status.

вы также можете просто щелкнуть правой кнопкой мыши на странице в браузере и выбрать "проверить элемент", чтобы открыть инструменты разработчика.

Этичный хакинг и тестирование на проникновение, информационная безопасность

Современные веб-сайты становятся всё сложнее, используют всё больше библиотек и веб технологий. Для целей отладки разработчиками сложных веб-сайтов и веб-приложений потребовались новые инструменты. Ими стали «Инструменты разработчика» интегрированные в сами веб-браузеры:

  • Chrome DevTools
  • Firefox Developer Tools

Они по умолчанию поставляются с браузерами (Chrome и Firefox) и предоставляют много возможностей по оценке и отладке сайтов для самых разных условий. К примеру, можно открыть сайт или запустить веб-приложение как будто бы оно работает на мобильном устройстве, или симулировать лаги мобильных сетей, или запустить сценарий ухода приложения в офлайн, можно сделать скриншот всего сайта, даже для больших страниц, требующих прокрутки и т.д. На самом деле, Инструменты разработчика требуют глубокого изучения, чтобы по-настоящему понять всю их мощь.

В предыдущих статьях я уже рассматривал несколько практических примеров использования инструментов DevTools в браузере:

Эта небольшая заметка посвящена анализу POST запросов. Мы научимся просматривать отправленные методом POST данные прямо в самом веб-браузере. Научимся получать их в исходном («сыром») виде, а также в виде значений переменных.

По фрагменту исходного кода страницы видно, что данные из формы передаются методом POST, причём используется конструкция onChange="this.form.submit();":


Как увидеть данные, переданные методом POST, в Google Chrome

Итак, открываем (или обновляем, если она уже открыта) страницу, от которой мы хотим узнать передаваемые POST данные. Теперь открываем инструменты разработчика (в предыдущих статьях я писал, как это делать разными способами, например, я просто нажимаю F12):


Теперь отправляем данные с помощью формы.

Переходим во вкладку «Network» (сеть), кликаем на иконку «Filter» (фильтр) и в качестве значения фильтра введите method:POST:


Как видно на предыдущем скриншоте, был сделан один запрос методом POST, кликаем на него:


  • Header — заголовки (именно здесь содержаться отправленные данные)
  • Preview — просмотр того, что мы получили после рендеренга (это же самое показано на странице сайта)
  • Response — ответ (то, что сайт прислал в ответ на наш запрос)
  • Cookies — кукиз
  • Timing — сколько времени занял запрос и ответ

Поскольку нам нужно увидеть отправленные методом POST данные, то нас интересует столбец Header.

Там есть разные полезные данные, например:

  • Request URL — адрес, куда отправлена информация из формы
  • Form Data — отправленные значения

Пролистываем до Form Data:


Там мы видим пять отправленных переменных и из значения.

Если нажать «view source», то отправленные данные будут показаны в виде строки:


Вид «view parsed» - это вид по умолчанию, в котором нам в удобном для восприятия человеком виде показаны переданные переменные и их значения.

Как увидеть данные, переданные методом POST, в Firefox

В Firefox всё происходит очень похожим образом.

Открываем или обновляем нужную нам страницу.

Открываем Developer Tools (F12).

Отправляем данные из формы.

Переходим во вкладку «Сеть» и в качестве фильтра вставляем method:POST:


Кликните на интересующий вас запрос и в правой части появится окно с дополнительной информацией о нём:


Переданные в форме значения вы увидите если откроете вкладку «Параметры»:



Другие фильтры инструментов разработчика

Для Chrome кроме уже рассмотренного method:POST доступны следующие фильтры:

Заголовки — это метаинформация, которую мы обычно не видим.

В заголовках запроса могут быть такие данные как:

  • предпочитаемые языки
  • характеристика программы, которая делает запрос
  • содержимое кукиз
  • информация для сервера — для какого хоста предназначен запрос и прочее

В заголовках ответа могут быть такие данные как:

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

Это самый простой способ, доступный в любой операционной системе.

Нажмите в веб-браузере F12 и откройте интересующую вас страницу. Перейдите на вкладку Network (сеть) и выберите интересующее вас подключение.



Вначале идут Заголовки ответа (Response Headers), а затем Заголовки запроса (Request Headers), хотя, конечно же, вначале отправляется запрос и его заголовки, а затем приходит ответ.

Опция -i также показывает только заголовки ответа, не показывает TLS рукопожатие, но зато показывает всё тело ответа.

Пример использования метода HEAD:


Пример вербального вывода:

Отправленные на веб сервер заголовки имеют в начале символ >, а полученные с веб-сервера строки начинаются на <.




Программа Burp Suite содержит прокси специально для просмотра заголовков. Более того, в программе имеются функции по модификации заголовков и другого содержимого на лету. Но Burp Suite это профессиональная программа, требующая изучения.

И ещё смотрите близкую по теме статью: Как отобразить данные POST с cURL.

Простыми словами объясняем, как браузер подключается и общается с сервером.

Поэтому первым делом браузеру нужно понять, какой IP-адрес у сервера, на котором находится сайт.

Такая информация хранится в распределенной системе серверов — DNS (Domain Name System). Система работает как общая «контактная книга», хранящаяся на распределенных серверах и устройствах в интернете.

Однако перед тем, как обращаться к DNS, браузер пытается найти запись об IP-адресе сайта в ближайших местах, чтобы сэкономить время:

  • Сначала в своей истории подключений . Если пользователь уже посещал сайт, то в браузере могла сохраниться информация c IP-адресом сервера.
  • В операционной системе . Не обнаружив информации у себя, браузер обращается к операционной системе, которая также могла сохранить у себя DNS-запись. Например, если подключение с сайтом устанавливалось через одно из установленных на компьютере приложений.
  • В кэше роутера , который сохраняет информацию о последних соединениях, совершенных из локальной сети.

Не обнаружив подходящих записей в кэше, браузер формирует запрос к DNS-серверам, расположенным в интернете.

Как только браузер узнал IP-адрес нужного сервера, он пытается установить с ним соединение. В большинстве случаев для этого используется специальный протокол — TCP.

TCP — это набор правил, который описывает способы соединения между устройствами, форматы отправки запросов, действия в случае потери данных и так далее.

Например, для установки соединения между браузером и сервером в стандарте TCP используется система «трёх рукопожатий». Работает она так:

  • Устройство пользователя отправляет специальный запрос на установку соединения с сервером — называется SYN -пакет.
  • Сервер в ответ отправляет запрос с подтверждением получения SYN-пакета — называется SYN/ACK -пакет.
  • В конце устройство пользователя при получении SYN/ACK-пакета отправляет пакет с подтверждением — ACK -пакет. В этот момент соединение считается установленным.

Задача браузера — как можно подробнее объяснить серверу, какая именно информация ему нужна .

Сервер получил запрос от браузера с подробным описанием того, что ему требуется. Теперь ему нужно обработать этот запрос. Этой задачей занимается специальное серверное программное обеспечение — например, nginx или Apache. Чаще всего такие программы принято называть веб-серверами.

Когда ответ сформирован, он отправляется веб-сервером обратно браузеру. В ответе как правило содержится контент для отображения веб-страницы, информация о типе сжатия данных, способах кэширования, файлы cookie, которые нужно записать и так далее.

👉 Чтобы обмен данными был быстрым, браузер и сервер обмениваются сразу множеством небольших пакетов данных — как правило, в пределах 8 КБ. Все пакеты имеют специальные номера, которые помогают отслеживать последовательность отправки и получения данных. 8. Браузер обрабатывает полученный ответ и «рисует» веб-страницу

Браузер распаковывает полученный ответ и постепенно начинает отображать полученный контент на экране пользователя — этот процесс называется рендерингом .

Сначала браузер загружает только основную структуру HTML-страницы. Затем последовательно проверяет все теги и отправляет дополнительные GET-запросы для получения с сервера различных элементов — картинки, файлы, скрипты, таблицы стилей и так далее. Поэтому по мере загрузки страницы браузер и сервер продолжают обмениваться между собой информацией.

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

Как только рендеринг завершен — пользователю отобразится полностью загруженная страница сайта.

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

Самый очевидный метод – создавать дамп каждый раз, когда вносятся изменения, что легко сделать в виртуальной машине. Мы просто делаем снимок каждый раз при изменении какой-либо информации. Затем мне нужно было сравнивать два снимка с целью нахождения точного места, где произошли изменения.

Далее процесс установки довольно прост: несколько браузеров (Chrome, IE, FF), учетная запись LastPass и добавление аккаунтов для нескольких сайтов.

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

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

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

Методика исследования

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

Авторизоваться в плагине LastPass (если произошло разлогинивание).

Авторизоваться на сайте.

Проверить память на присутствие паролей в открытом виде.

Повторно использовать вкладку.

Я знал все имена пользователей и пароли, так что первый шаг был довольно очевидным. Я авторизовался на первом сайте при помощи тестовой учетной записи на FaceBook. После авторизации я прогулялся по двум страница и далее, оставив вкладку открытой, сделал первый снимок.

Мой первый поисковый запрос был простым:

grep -a 03rRJaYNMuoXG7hs Win7x64-MemTesting-Snapshot3.vmem | strings >

Параметр –а говорит утилите grep о том, что бинарный дамп нужно обрабатывать как текст, а утилита string немного очищает выходные данные перед записью в текстовый файл.

В полученном текстовом файле сразу же видим незашифрованный пароль:

Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост

Содержимое снимка памяти во время работы с учетной записью в FaceBook

Два момента сразу же привлекают внимание:

Первый - объект JSON с паролем, именем домена, временными метками и другой информацией, которая, скорее всего, имеет отношение к автоматическому заполнению полей формы.

Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост

Второй – выглядит немного оторванным от остальной информации.

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

Кроме того, чтобы убедиться, что браузер сам по себе не хранит данную информацию, я полностью почистил историю.

Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост

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

Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост

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

Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост

В структуре выше имя пользователя, имя домена и пароль хранятся как обычный текст.

Информация по сайту QNAP, который был просто загружен, но без заполнения формы, в памяти отсутствовала.

Во время поиска в памяти других интересных деталей я натолкнулся на интересную информацию:

Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост

Область данных, помеченная как LastPassPrivateKey

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

Во время размышлений о возможностях использования содержимого PrivateKey меня осенило, что еще не проверено, присутствует сам мастер-пароль в памяти. Я предполагал, что мастер-пароль удаляется сразу же после расшифровки информации.

Используя grep, я нашел имя пользователя и пароль в открытом виде только в одном из снимков.

Далее я попробовал посмотреть информацию по открытым, закрытым и повторно используемым вкладкам. По результатам экспериментов я пришел к выводу, что если вкладка открыта и авторизация произошла, то учетные записи в памяти, в большинстве случаев, найти можно.

Что касается повторно используемых, неактивных и закрытых вкладок другими доменами, то здесь уже сложнее найти нужные структуры данных. Информация находится в памяти, и если вы знаете конкретные значения, то найти нужные структуры можно, в противном случае процесс напоминает поиск иголки в стоге сена.

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

Пару лет назад Брайан Баскин (Brian Baskin) опубликовал статью с описанием плагина Volatility, который использует YARA-правила для поиска и извлечения информации из памяти. Именно данная технология легла в основу моего плагина.

Далее нужно было применить несколько YARA-правил и впоследствии обработать полученную информацию, чтобы собрать результаты воедино.

После обработки снимка памяти вы получите нечто следующее:

$ vol.py --plugins=/home/localadmin/github/volatility_plugins/lastpass --profile=Win7SP1x86 -f /home/localadmin/Desktop/lastpass-mem.vmem lastpass

Volatility Foundation Volatility Framework 2.5

Searching for LastPass Signatures

Found pattern in Process: chrome.exe (3400)

Found pattern in Process: chrome.exe (3400)

Found pattern in Process: chrome.exe (3400)

Found pattern in Process: chrome.exe (3400)

Found pattern in Process: chrome.exe (3400)

Found pattern in Process: chrome.exe (3400)

Found pattern in Process: chrome.exe (3400)

Found pattern in Process: chrome.exe (3400)

Found pattern in Process: chrome.exe (3400)

Found pattern in Process: chrome.exe (3400)

Found pattern in Process: chrome.exe (3400)

Found pattern in Process: chrome.exe (3400)

Found pattern in Process: chrome.exe (3840)

Found pattern in Process: chrome.exe (3840)

Found pattern in Process: chrome.exe (3840)

Found pattern in Process: chrome.exe (3840)

Found pattern in Process: chrome.exe (3912)

Found pattern in Process: chrome.exe (3912)

Found pattern in Process: chrome.exe (3912)

Found pattern in Process: chrome.exe (3912)

Found pattern in Process: chrome.exe (3912)

Found pattern in Process: chrome.exe (3912)

Found pattern in Process: chrome.exe (4092)

Found pattern in Process: chrome.exe (4092)

Found pattern in Process: chrome.exe (4092)

Found pattern in Process: chrome.exe (4092)

Found pattern in Process: chrome.exe (2036)

Found pattern in Process: chrome.exe (2036)

Found pattern in Process: chrome.exe (2036)

Found Private Key

Found Private Key

Как найти и извлечь POST-запросы, содержащие личные данные, пароли и т.д. Пост, Данные, Пароль, Изъятие, Криминалистика, Длиннопост


Информационная безопасность

1.2K постов 22.7K подписчиков

Правила сообщества

Обязательно к прочтению для авторов:

1. Если вы добавляете пост, утверждающий об утечке данных или наличии дыр в системе, предоставьте ссылку на источники или технически подкованное расследование. Посты из разряда "Какой-то банк слил данные, потому что мне звонили мошенники" будут выноситься в общую ленту.
2. Все вопросы "Как обезопасить сервер\приложение\устройство" - в лигу "Компьютер это просто".

Обязательно к прочтению для всех:

Добавление ссылки разрешено если она не содержит описание коммерческих (платных) продуктов и/или идентификаторов для отслеживания перехода и для доступа не нужен пароль или оплата в т.ч. интернет-ресурсы, каналы (от 3-х тематических видео), блоги, группы, сообщества, СМИ и т.д.

Запрещены политические holy wars.

По решению модератора или администратора сообщества пользователь будет забанен за:

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

2. Публикацию поста/комментария не соответствующего тематике сообщества, в том числе обсуждение администраторов и модераторов сообщества, для этого есть специальное сообщество.

3. За обвинение в киберпреступной деятельности.

4. За нарушение прочих Правил Пикабу.

Иллюстрация к комментарию

В оперативке данные хранятся в открытом виде, вот это открытие, скорее учительнице по информатике покажи.
Листая журнал "Хакер" дальше ты, видимо, прочитаешь про замораживание памяти жидким азотом

Нифига не понял, но на всякий случай плюсанул.

Теперь поясните, какой результат исследования? Что веб-страница может угнать ваши пароли, если стоит lostpass? Или что вирус может угнать ваши пароли, если стоит lostpass?

Т.е, что бы угнать пароль, нужна прога на компе жертвы, которая вытягивает пароли из оперативы. Вот и весь смысл поста

Полезная инфа. А можешь научить следы порнухи прятать?

Следующий пост будет посвящен клавиатурным шпионам.

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

Заодно увидите все нажатия.

А если писали для новичков, то очень уж замудренно, те тоже предпочитают удаленные доступы, да перехватчики.

Спасибо огромное за исследование, что тех поддержка ластпасса говорит? Получается что для любой тачки, просто войдя в память процесса можно легко достать все пароли. Ужас насколько беспечно сделано.
Если разлогиниться из расширения, структуры освобождаются, хотя бы?

UPD: ах, исследование не ваше. Тогда зачем?

Интересно, а можно ли доработать poisontap, чтобы он ещё пробегался по оперативке для поиска паролей

Что за ерунда в заголовке и почему он драматически отличается от оригинала статьи?

Какой вообще смысл выуживания паролей, если LastPass и так дает доступ куда нужно?

Мне кажется, более уместна статья была бы на каком нибудь хабре и похожих ресурсах.

Однажды сохранил пароль от профиля в гуглохроме, затем удалил его(браузер). Затем вновь скачал и установил. И вжухх. Сохранённый пароль работает даже после удаления и переустановки.


В сеть утекли 3,2 млрд логинов и паролей с Gmail и прочих почтовых сервисов

В сети появилась информация о глобальной утечке, в результате которой злоумышленники опубликовали 3,2 млрд логинов и паролей с Gmail и прочих почтовых сервисов.

Будни админа 3 - Святая простота

-Серега…. Тут файлик у тебя на рабочем столе. Вот этот.

-Я тут его открыл ненароком. Там это… что, номера карт записаны?

-И CR коды к ним?

-Ну да. Я в этот файл записываю всё, чтобы не забыть.

-Я еще ненароком заметил всякое полезное…. Логины и пароли к сберу, госуслугам и всякое такое..

-Ну я же говорю- я туда всякое важное записываю.

-Погоди… Дай мне осознать. То есть если завтра из твоего Рэнджа тягают этот ноут…плюс телефон при фантастической удаче .. то получив этот файлик, грубо говоря, кто-то получит доступ ко всем твоим счетам, картам, аккаунтам всех возможных сайтов и пароли?

Ответ сразил меня наповал.

-ТАК НА НОУТБУКЕ ЖЕ ПАРОЛЬ СТОИТ.

З.Ы. Мы долго беседовали в тот вечер, и Серега ушел от меня очень задумчивым. Теперь он знал, как заархивировать жизненно важные циферки с установкой пароля, как прятать файлы, на дилетантском уровне использовать шифрование данных. И как легко открыть его ноутбук набрав пару строчек в гугле…. А я плохо спал в ту ночь…. Ведь резервную копию нужно было удалять с моего переносного винчестера….. И да, фраза Сереги мне тоже снилась. Если ты такой умный, то где твои миллионы.

Читайте также: