web-dev-qa-db-ja.com

すべての着信HTTP要求を監視するにはどうすればよいですか?

外部および場合によってはマシンの内部から発信される着信http POSTおよびGET要求からアプリケーションを監視する必要があります。

これは可能ですか?

フィドラーを使用しているが、これは(マシンの外部から)発信ではなく発信のみを行うか、間違って設定していますか?

これは、外部サーバーからPOSTを受け取ることを意図したWebアプリ用です。

71
Exitos

Guysは、マシンからマシンへのリクエスト間でローカルに流れるすべてのトラフィックを監視する完璧な方法を見つけました。

  1. インストール Wireshark
  2. ローカルホストからローカルホストに流れるトラフィックをキャプチャする必要がある場合、ネットワークカード上の着信トラフィックのみを監視するため、wiresharkの使用に苦労します。これを行う方法は、ゲートウェイへのすべてのトラフィックを強制するウィンドウにルートを追加し、これをネットワークインターフェイスでキャプチャすることです。

    これを行うには、<ip address><gateway>を使用してルートを追加します。

    cmd> route add 192.168.20.30 192.168.20.1
    
  3. 次に、wiresharkでキャプチャを実行します(バイトが流れるインターフェイスを選択していることを確認してください)。その後、フィルタリングします。

新しく追加されたルートは黒で表示されます。 (ローカルアドレスであるため)

9
Exitos

あなたがする必要があるのは 「逆プロキシ」として動作するようにFiddlerを設定する

FiddlerのWebサイトでこれを行うことができる2つの異なる方法に関する指示があります。手順のコピーを次に示します。


ステップ#0

次のオプションのいずれかが機能する前に、他のコンピューターがFiddlerに接続できるようにする必要があります。これを行うには、[ツール]> [Fiddlerオプション]> [接続]をクリックし、[リモートコンピューターの接続を許可する]チェックボックスをオンにします。次に、Fiddlerを閉じます。

オプション#1:Fiddlerをリバースプロキシとして構成する

Fiddlerは、http://127.0.0.1:8888は、同じマシンの別のポートに自動的に送信されます。この構成を設定するには:

  1. REGEDITを開始
  2. HKCU\SOFTWARE\Microsoft\Fiddler2内にReverseProxyForPortという名前の新しいDWORDを作成します。
  3. DWORDを、受信トラフィックを再ルーティングするローカルポートに設定します(通常、標準HTTPサーバーの場合はポート80)
  4. Fiddlerを再起動します
  5. ブラウザをナビゲートしてhttp://127.0.0.1:8888

オプション#2:FiddlerScriptルールを記述する

または、同じことを行うルールを作成できます。

WEBSERVERという名前のマシンのポート80でWebサイトを実行しているとします。 Webプロキシを構成できないWindows SmartPhoneデバイスでInternet Explorer Mobile Editionを使用してWebサイトに接続しています。電話からのトラフィックとサーバーの応答をキャプチャする必要があります。

  1. 8888のデフォルトポートで実行されているWEBSERVERマシンでFiddlerを起動します。
  2. [ツール]をクリックします| Fiddlerオプション]をクリックし、[リモートクライアントの接続を許可する]チェックボックスがオンになっていることを確認します。必要に応じて再起動します。
  3. ルールを選択|ルールをカスタマイズします。
  4. OnBeforeRequestハンドラー内に、新しいコード行を追加します。
    if(oSession.Host.toLowerCase()== "webserver:8888")oSession.Host = "webserver:80";
  5. スマートフォンで、http://webserver:8888

スマートフォンからのリクエストはFiddlerに表示されます。要求は、ポート8888からWebサーバーが実行されているポート80に転送されます。応答はFiddlerを介してSmartPhoneに返送されますが、スマートフォンはコンテンツが最初にポート80から来たとは考えていません。

63
Saul Dolgin

Microsoftネットワークモニターをインストールし、HTTPパケットのみを表示するようにツールを構成し(ポートをフィルターし)、パケットのキャプチャを開始します。

ダウンロードできます こちら

32
YudhiWidyatama

WindowsでFiddlerを「リバースプロキシ」として構成する

(Macの場合、以下のPartizanoのコメントのリンクを参照してください)

私はすでにこれを示唆する答えがあることを知っていますが、Telerikshouldが提供したはずの説明と指示を提供し、いくつかの「落とし穴」もカバーしたいので、ここで行く:

Fiddlerを「リバースプロキシ」として構成するとはどういう意味ですか?

  • デフォルトでは、Fiddlerは、Fiddlerを実行しているマシンからのoutgoing要求のみを監視します
  • 着信リクエストを監視するには、「逆プロキシ」として動作するようにFiddlerを設定する必要があります
  • つまり、Fiddlerを「プロキシ」として設定し、着信リクエストをリッスンするマシンの特定のポート(8888)に送信される着信HTTPリクエストをインターセプトする必要があります。 Fiddlerは、http要求の通常のポート(通常はhttpsの場合はポート80または443)に送信することにより、同じマシン上のWebサーバーにそれらの要求を転送します。実際には非常に迅速かつ簡単です!
  • Fiddlerでこれを設定する標準的な方法は、ポート '8888'に送信されたすべてのリクエストをFiddlerにインターセプトさせることです(これは通常、他のポートでは使用されませんが、別のポートを簡単に使用できます)
  • 次に、レジストリエディターを使用して、Fiddlerがポート8888で受信するすべてのhttp要求をFiddlerに転送し、標準のhttpポート(https要求の場合はポート80、ポート443、または別のカスタムポート)に転送する必要がありますWebサーバーはリッスンするように設定されています)

注:これを機能させるには、インターセプトするリクエストをポート8888に送信する必要があります

これを行うには、hostnameに:8888を追加します。たとえば、MVCルートの場合は次のようになります。

http://myhostname:8888 /controller/action


ウォークスルー

Fiddlerがポート8888でリモートHTTP要求を受け入れることができることを確認します。

管理者としてFiddlerを実行します[ツール]> [Fiddlerオプション]> [接続]に移動し、[リモートコンピューターへの接続を許可する]がオンになっていることを確認し、[Fiddlerがポートでリッスンする] 'は8888に設定されます:

enter image description here

ポート8888で受信したリクエストをポート80に転送するようにFiddlerを構成します

  • フィドラーを閉じる
  • REGEDITを開始
  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Fiddler2 内にReverseProxyForPortという名前の新しいDWORDを作成します。
    • 次に、DWORD値を、受信トラフィックを再ルーティングするローカルポートに設定します(通常、標準のHTTPサーバーのポート80)
  • これを行うには、作成したDWORDを右クリックし、[変更]を選択します。 「ベース」が「10進数」に設定されていることを確認し、「値データ」として「80」(または別のポート)を入力します。

ファイアウォールでポート8888が開かれていることを確認します

  • ポート8888が外部リクエストに対して開かれていることを確認する必要があります(サーバーがファイアウォールで保護されている場合、デフォルトでは開きません)

それだけです! Fiddlerをリバースプロキシとして設定し、ポート8888からのすべての要求をインターセプトして(Fiddlerで表示できるように)、Webサーバーに転送して実際に処理する必要があります

リクエストをテストする

  • Fiddlerを再起動します
  • Fiddlerが外部リクエストをインターセプトしていることをテストするには、Fiddlerをリバースプロキシとしてセットアップしたのと同じマシンでブラウザーを開きます。ブラウザを http://127.0.0.1:8888 に移動します
  • これは、ポート8888への基本的なリクエストを行うテストです
  • Fiddlerによってインターセプトされたリクエストが表示されます
  • これで、たとえば、次のような別のマシンのブラウザーからリクエストを作成することで、別のマシンからのリクエストをテストできます(「remoteHostname」は、Fiddlerをリバースプロキシとして設定したマシンのホスト名です):

http://remoteHostname:8888 /controller/action

  • または、上記と同様のURLを使用して、remoteマシンでFiddlerの別のインスタンスを使用して、リクエストを作成できます。これにより、GETまたはPOSTリクエストを作成できます。

重要:リクエストの表示が終了したら、ツール> Fiddlerオプション>接続に戻り、「リモートコンピューターの接続を許可する」オプションを削除します。サーバーを通過するトラフィックをバウンスするには

11
Chris Halcrow

Microsoft Message AnalyzerはMicrosoft Network Monitor 3.4の後継です

HTTP着信トラフィックが58000ポートでWebサーバーに送られている場合は、管理者モードでアナライザーを起動し、新しいセッションをクリックします。

フィルターを使用:tcp.Port = 58000およびHTTP

トレースシナリオ:「ローカルネットワークインターフェイス(Win 8以前)」または「ローカルネットワークインターフェイス(Win 8.1以降)」はOSによって異なります

解析レベル:完全

5
Y P

Fiddlerをリバースプロキシとして実行することを検討します。クライアントをFiddlerのアドレスに接続させ、Fiddlerからアプリケーションにリクエストを転送できるようにする必要があります。

これには、要件に基づいてより簡単な方法に応じて、少しのポート操作またはクライアント構成が必要になります。

方法の詳細はこちら: http://www.fiddler2.com/Fiddler/Help/ReverseProxy.asp

3
AndyElastacloud

Wiresharkを使用..

私はこれを試していません: http://wiki.wireshark.org/CaptureSetup/Loopback

それが機能する場合は、http/http contains GET/http contains POST トラフィック。

2つのWiresharkインスタンスを実行する必要がある場合があります。1つはローカルをキャプチャし、もう1つはリモートをキャプチャします。よく分かりません。

2
thirtydot

TcpView を使用して、ポートのリッスンと接続を確認します。ただし、これはnotリクエストを提供します。

リクエストを表示するには、そのようなツールを知らないプロキシをリバースする必要があります。

tracing を使用して、リクエストの一部(リクエストの最初の1KB)を提供します。

2
Aliostad

HTTP Debugger を試すこともできます。着信HTTP要求を表示する組み込み機能があり、システム構成を変更する必要はありません。

HTTP Debugger

0
Khachatur