Подтвердить что ты не робот

Как отслеживать все входящие HTTP-запросы?

Мне нужно отслеживать свое приложение от входящих HTTP POST и GET запросов, исходящих извне, а иногда и внутри машины.

Возможно ли это?

Используется скрипач, но это только делает исходящий не входящий (извне машины), или я его неправильно настроил?

Это для моего веб-приложения, предназначенного для приема POST с внешнего сервера.

4b9b3361

Ответ 1

Ребята нашли идеальный способ отслеживать ВСЕ трафик, который протекает локально между запросами от моей машины к моей машине:

  • Установить Wireshark
  • Когда вам нужно захватить трафик, который идет от локального хоста к локальному хосту, вам будет сложно использовать wirehark, поскольку он контролирует только входящий трафик на сетевой карте. Способ сделать это - добавить маршрут к окнам, который заставит весь трафик через шлюз, и это будет зафиксировано в сетевом интерфейсе.

    Чтобы сделать это, добавьте маршрут с помощью <ip address> <gateway>:

    cmd> route add 192.168.20.30 192.168.20.1
    
  • Затем запустите захват на wirehark (убедитесь, что вы выбрали интерфейс с байтами, проходящими через него). Затем фильтруйте.

Новые добавленные маршруты появятся в черном цвете. (поскольку они являются локальными адресами)

Ответ 2

Что вам нужно сделать, это настроить Fiddler на работу как "обратный прокси"

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


Шаг # 0

Прежде чем работать с одним из следующих параметров, вы должны разрешить другим компьютерам подключаться к Fiddler. Для этого выберите "Сервис" > "Параметры скрипача" > "Подключения" и установите флажок "Разрешить удаленные компьютеры для подключения". Затем закройте Fiddler.

Вариант №1: настройка Fiddler как обратного прокси

Fiddler можно настроить так, чтобы любой трафик, отправленный на http://127.0.0.1:8888, автоматически отправлялся на другой порт на том же компьютере. Чтобы установить эту конфигурацию:

  • Запустить REGEDIT
  • Создайте новый DWORD с именем ReverseProxyForPort внутри HKCU\SOFTWARE\Microsoft\Fiddler2.
  • Установите DWORD на локальный порт, к которому вы хотите перенаправить входящий трафик (обычно это порт 80 для стандартного HTTP-сервера).
  • Перезапустить Fiddler
  • Перейдите в браузер http://127.0.0.1:8888

Вариант № 2: Напишите правило FiddlerScript

В качестве альтернативы вы можете написать правило, которое делает то же самое.

Предположим, что вы используете веб-сайт на порту 80 машины с именем WEBSERVER. Вы подключаетесь к веб-сайту с помощью Internet Explorer Mobile Edition на устройстве Windows SmartPhone, для которого вы не можете настроить веб-прокси. Вы хотите захватить трафик с телефона и ответ сервера.

  • Запустите Fiddler на машине WEBSERVER, работая на порту по умолчанию 8888.
  • Нажмите "Инструменты" | Fiddler Options и установите флажок "Разрешить удаленные клиенты подключиться". При необходимости перезапустите.
  • Выберите Правила | Настроить правила.
  • Внутри обработчика OnBeforeRequest добавьте новую строку кода:
    if (oSession.host.toLowerCase() == "webserver: 8888" ) oSession.host = "webserver: 80";
  • На смартфоне перейдите к http://webserver:8888

Запросы от SmartPhone появятся в Fiddler. Запросы пересылаются с порта 8888 на порт 80, где работает веб-сервер. Ответы отправляются обратно через Fiddler в SmartPhone, который не знает, что контент изначально был отправлен с порта 80.

Ответ 3

Я бы установил Microsoft Network Monitor, сконфигурировал инструмент, чтобы он мог видеть только HTTP-пакеты (фильтровать порт) и запускать захват пакетов.

Вы можете скачать его здесь

Ответ 4

Настроить Fiddler как "обратный прокси" в Windows

(для Mac см. ссылку в комментарии Partizano ниже)

Я знаю, что уже есть ответ, предлагающий это, однако я хочу дать объяснения и инструкции для этого, которые должен был предоставить Telerik, а также покрыть некоторые "gotchas", поэтому здесь идет:

Что значит настроить Fiddler как "обратный прокси" ?

  • По умолчанию Fiddler только отслеживает исходящие запросы с компьютера, на котором вы запускаете Fiddler
  • Чтобы отслеживать входящие запросы, вам нужно настроить Fiddler на работу как "обратный прокси"
  • Это означает, что вам нужно установить Fiddler как "прокси", который перехватит входящие HTTP-запросы, которые отправляются на определенный порт (8888) на компьютере, где вы хотите прослушивать входящие запросы. Затем Fiddler пересылает эти запросы на веб-сервер на том же компьютере, отправив их на обычный порт для HTTP-запросов (обычно порт 80 или 443 для https). Это действительно очень быстро и легко сделать!
  • Стандартный способ установить это с помощью Fiddler - заставить Fiddler перехватить весь запрос, отправленный в порт "8888" (так как это обычно не будет использоваться ничем другим, хотя вы можете так же легко использовать другой порт)
  • Затем вам нужно использовать редактор реестра, чтобы заставить Fiddler пересылать любые HTTP-запросы, которые Fiddler получает на порт 8888, чтобы они перенаправлялись на стандартный порт http (порт 80, порт 443 для запроса https или другой настраиваемый порт, на который настроен ваш веб-сервер)

ПРИМЕЧАНИЕ. Чтобы это сработало, любой запрос, который вы хотите перехватить, должен быть отправлен на порт 8888

Вы делаете это, добавляя: 8888 к вашему имени хоста, например, например, для маршрута MVC:

Http://myhostname: 8888/контроллер/действие


Пошаговое руководство

Убедитесь, что Fiddler может принимать удаленные HTTP-запросы на порт 8888:

Запустить Fiddler как администратор. Выберите "Инструменты" > "Параметры Fiddler" > "Подключения" и убедитесь, что "Разрешить удаленные компьютеры подключиться" отмечен, а "Fiddler listenens on port" установлен на 8888:

введите описание изображения здесь

Настроить Fiddler для пересылки запросов, полученных на порт 8888, на порт 80

  • Закрыть Fiddler
  • Запустить REGEDIT
  • Создайте новый DWORD с именем ReverseProxyForPort внутри HKEY_CURRENT_USER\SOFTWARE\Microsoft\Fiddler2.
    • Теперь установите значение DWORD для локального порта, к которому вы хотите перенаправить входящий трафик (обычно это порт 80 для стандартного HTTP-сервера).
  • Чтобы сделать это, щелкните правой кнопкой мыши созданный DWORD и выберите "Изменить". Убедитесь, что для "Base" установлено значение "Decimal" и введите "80" (или другой порт) в качестве "данных значения":

Убедитесь, что порт 8888 открыт на брандмауэре

  • Вы должны убедиться, что порт 8888 открыт для внешних запросов (он не будет по умолчанию, если ваш сервер защищен брандмауэром).

Что это! Теперь Fiddler должен быть настроен как обратный прокси-сервер, чтобы перехватить все запросы с порта 8888 (чтобы вы могли просматривать их в Fiddler), и затем он будет перенаправлять их на ваш веб-сервер для фактического управления.

Проверить запрос

  • Перезапустить Fiddler
  • Чтобы проверить, что Fiddler перехватывает внешние запросы, откройте браузер на том же компьютере, на котором вы установили Fiddler как обратный прокси. Перейдите в браузер http://127.0.0.1:8888
  • Этот тест делает основной запрос на порт 8888
  • Вы должны увидеть запрос, перехваченный Fiddler
  • Теперь вы можете протестировать запрос с другого компьютера, например, сделав запрос из браузера на другом компьютере, подобном этому (где "remoteHostname" - это имя хоста на компьютере, на котором вы установили Fiddler как обратный прокси)

Http://RemoteHostName: 8888/контроллер/действие

  • В качестве альтернативы вы можете составить запрос, используя другой экземпляр Fiddler на удаленном компьютере, используя URL-адрес, аналогичный приведенному выше. Это позволит вам выполнить запрос GET или POST.

ВАЖНО: после того, как вы закончите просмотр своих запросов, вернитесь в Инструменты > Параметры Fiddler > Подключения и удалите параметр "Разрешить удаленные компьютеры для подключения", в противном случае третьи стороны смогут отсканировать трафик через ваш сервер

Ответ 5

Microsoft Message Analyzer - это преемник Microsoft Network Monitor 3.4

Если ваш входящий HTTP-трафик идет на ваш веб-сервер с портом 58000, запустите анализатор в режиме администратора и нажмите новый сеанс:

Использовать фильтр: tcp.Port = 58000 и HTTP

трассировка: "Локальные сетевые интерфейсы (Win 8 и более ранние версии)" или "Локальные сетевые интерфейсы (Win 8.1 и более поздние версии)" зависят от вашей ОС

Уровень анализа: полный

Ответ 6

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

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

Подробности о том, как это сделать: http://www.fiddler2.com/Fiddler/Help/ReverseProxy.asp

Ответ 7

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

Чтобы видеть запросы, вам нужно обратное прокси-серверу, о котором я не знаю никаких таких инструментов.

Используйте трассировку, чтобы предоставить вам части запросов (сначала 1 Кбайт запроса).

Ответ 8

Использование Wireshark..

Я не пробовал: http://wiki.wireshark.org/CaptureSetup/Loopback

Если это сработает, вы можете фильтровать трафик http/http contains GET/http contains POST.

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

Ответ 9

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

Отладчик HTTP