90

tcpdump以下のコマンドを実行してHTTPデータを取得するため に使用しています。

sudo tcpdump -A -s 1492 dst port 80

上記のコマンドの結果:

  1. ヘッダー、リクエストヘッダーとレスポンスヘッダーだと思います。
  2. 読み取り不可能なデータ。
  3. URL GET /modules/mod_news_pro_gk1/cache/stories.ilbalad.ajayeb.strange-tractor.jpg

より明確な結果が必要です。たとえば、読み取り可能なリクエスト>レスポンスヘッダー>レスポンスボディなどです。結果をフィルタリングするにはどうすればよいですか?

4

3 に答える 3

217

HTTP GET および HTTP POST (または両方とメッセージ本文) 用の tcpdump フィルターがあります。

  • 実行man tcpdump | less -Ip examplesしていくつかの例を表示

  • GETHTTP GET ( = 0x470x45、)の tcpdump フィルターは0x54次のとおりです。0x20

    sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
    
  • POSTHTTP POST ( = 0x500x4f、)の tcpdump フィルターは0x53次のとおりです。0x54

    sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
    
  • リクエスト ヘッダー、レスポンス ヘッダー、メッセージ本文 ( source )を含む HTTP トラフィックを監視します。

    tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
    tcpdump -X -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
    

TCP ヘッダーのビット操作の詳細については、次を参照してください: String-Matching Capture Filter Generator (Sake Blok の説明へのリンク)。

于 2013-05-17T13:31:43.017 に答える
34

特定のTCP接続の完全な要求と応答を非常に簡単に確認できる「FollowTCPStream」オプションを備えたWiresharkを使用することをお勧めします。コマンドラインを使用したい場合は、TCPストリームのコンテンツをキャプチャして再構築するための専用ツールであるtcpflowを試すことができます。

他のオプションは、EricLawが示唆するようにCharlesFiddlerのようなHTTPデバッグプロキシを使用することです。これらには、HTTPを特別にサポートして、さまざまな種類のエンコーディングの処理を容易にするという利点があります。また、リクエストを保存して再生したり、リクエストを編集したりするなどの機能もあります。

また、 Firebug(Firefox)、Web Inspector(Safari、Chrome、およびその他のWebKitベースのブラウザー)、Opera Dragonflyなどのツールを使用することもできます。これらはすべて、要求と応答のヘッダーと本文を表示する機能を提供します(ただし、正確なバイトストリームを表示することはできませんが、代わりにブラウザがリクエストをどのように解析したかを確認できます)。

そして最後に、telnet、netcatsocatなどを使用してポート80に接続し、手動でリクエストを入力するか、httyなどのツールを使用してリクエストを簡単に作成し、応答を検査することで、いつでも手動でリクエストを作成できます。

于 2011-01-23T23:33:56.030 に答える
6

ここに別の選択肢があります:カオスリーダー

したがって、xmlをサードパーティアプリケーションに投稿するアプリケーションをデバッグする必要があります。私はすべての大変な作業を行う素晴らしい小さなperlスクリプトを見つけました-あなたはそれをtcpdump出力ファイルにチャックするだけで、それはすべての操作を行い、あなたが必要とするすべてを出力します...

このスクリプトはchaosreader0.94と呼ばれます。http://www.darknet.org.uk/2007/11/chaosreader-trace-tcpudp-sessions-from-tcpdump/を参照してください

それは御馳走のように働きました、私は次のことをしました:

tcpdump host www.blah.com -s 9000 -w outputfile; perl chaosreader0.94 outputfile
于 2012-05-20T08:35:44.370 に答える