Как перехватывать HTTP-запросы и ответы клиентской машины (например, скрипач)
Я думал, что единственный способ перехватить запрос - использовать прокси-сервер, но скрипач каким-то образом может перехватывать HTTP-запросы и ответы без необходимости настройки каких-либо браузеров.
Что происходит под капотом?
И знаете ли вы какую-нибудь библиотеку для этого? (На любых языках)
Ответы
Ответ 1
Fiddler действительно использует прокси. Я считаю, что установщик автоматически настраивает IE на использование прокси Fiddler. Вы также можете настроить другие браузеры для прохождения через один и тот же прокси-сервер, поэтому Fiddler также будет профилировать свой сетевой трафик.
Подробнее здесь
Ответ 2
Fiddler - прокси-сервер, написанный на С# и обертывающий базовые сокеты.
Он регистрируется с помощью WinINET, используя соответствующий вызов API во время работы, и отделяется таким же образом. Большинство браузеров автоматически определяют настройку прокси-сервера WinINET и используют его. В Firefox нет, поэтому текущие версии Fiddler устанавливают аддон Firefox.
-EricLaw [MSFT]
Ответ 3
Я не знаю, как это делает скрипач, но это можно сделать с помощью Layered Service Provider в Windows.
Из Википедии:
"Многоуровневый поставщик услуг (LSP) является функцией интерфейса поставщика услуг Windows Winsock 2 (SPI). Слоистый поставщик услуг - это DLL, которая использует API Winsock для вставки в стек TCP/IP. стек, поставщик слоистых услуг может перехватывать и изменять входящий и исходящий интернет-трафик. Он позволяет обрабатывать весь трафик TCP/IP между Интернетом и приложениями, которые обращаются к Интернету (например, веб-браузер, почтовый клиент, и т.д.).
Ответ 4
Может быть запущен сетевой интерфейс в беспорядочном режиме. Именно так WireShark может отслеживать сетевой трафик и отображать его.
Дополнительная информация: http://en.wikipedia.org/wiki/Promiscuous_mode
Ответ 5
Из заметок MSDN на расширяющий скрипач
Fiddler поддерживает механизм обработки событий JScript.NET, который позволяет пользователю автоматически изменять HTTP-запрос или ответ. Двигатель может изменять визуальный внешний вид сеанса в пользовательском интерфейсе Fiddler (UI), привлекать внимание к ошибкам или вообще удалять неинтересные сеансы из списка.
Ответ 6
Я думаю, вы не хотите слышать, что вы можете просто перехватить их на веб-сервере вместо клиента (если он локально) или использовать WPAC (автоматическая настройка прокси).
Другой вариант - использовать sotware, например SocksCap, который "отлаживает" процесс браузера (или веб-сервера), и всякий раз, когда он называет некоторые функции winsock, они перехватывают его и вызывают свой собственный код.
Библиотека для подобных действий (перехватывать вызовы библиотеки на отлаженный процесс) detours.
Ответ 7
Другой вариант - использовать что-то вроде Wireshark. Ниже на странице About на http://www.wireshark.org/
Wireshark - это мир прежде всего анализатора сетевых протоколов и де-факто (и часто де-юре) во многих отраслях и образовательных учреждения.
Функции
Wireshark имеет богатый набор функций, который включает в себя следующее:
- Глубокий осмотр сотен протоколов, с добавлением большего количества время
- Интеграция в реальном времени и автономный анализ
- Стандартный браузер с тремя панелями
- Multi-platform: работает в Windows, Linux, OS X, Solaris, FreeBSD, NetBSD, и многие другие
- Захваченные сетевые данные можно просматривать через графический интерфейс или через TTY-режим Утилита TShark
- Самые мощные фильтры отображения в отрасли
- Богатый анализ VoIP
- Чтение/запись многих различных форматов файлов захвата: tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Общая сеть Sniffer® (сжатый и несжатый), Sniffer® Pro и Сетевые инструменты NetXray® Наблюдатель, Snoop NetScreen, Novell LANalyzer, анализатор WAN/LAN RADCOM, Shomiti/Finisar Surveyor, Tektronix K12xx, визуальные среды Visual UpTime, WildPackets EtherPeek/TokenPeek/AiroPeek и многие другие
- Захват файлов, сжатых с помощью gzip, может быть распакован на лету
- Живые данные могут считываться через Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, Frame Relay, FDDI и другие (в зависимости от ваш планшет)
- Поддержка расшифровки для многих протоколов, включая IPsec, ISAKMP, Kerberos, SNMPv3, SSL/TLS, WEP и WPA/WPA2
- Правила раскраски могут применяться к списку пакетов для быстрого, интуитивного Анализ
- Вывод может быть экспортирован в XML, PostScript®, CSV или обычный текст
Ответ 8
Другим способом перехвата трафика без прокси-сервера является WCCP на поддерживаемом устройстве.
http://www.cisco.com/en/US/docs/ios/11_2/feature/guide/wccp.html