以下のコマンドを実行して、tcpdump
を使用してHTTPデータを取得しています。
Sudo tcpdump -A -s 1492 dst port 80
上記のコマンドの結果:
GET /modules/mod_news_pro_gk1/cache/stories.ilbalad.ajayeb.strange-tractor.jpg
。たとえば、読み取り可能な要求>応答ヘッダー>応答本文など、より明確な結果が必要です。結果をフィルターするにはどうすればよいですか?
HTTP GETおよびHTTP POST(または両方とメッセージ本文)のtcpdumpフィルターがあります。
man tcpdump | less -Ip examples
を実行していくつかの例を見る
HTTP GET用のtcpdumpフィルターは次のとおりです。
Sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
HTTP POST用のtcpdumpフィルターは次のとおりです。
Sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
要求および応答ヘッダーとメッセージ本文を含むHTTPトラフィックを監視します( source ):
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の説明へのリンク)を参照してください。
Wireshark を使用することをお勧めします。これには、特定のTCPに対する完全な要求と応答を非常に簡単に確認できる「フォローTCPストリーム」オプションがあります接続。コマンドラインを使用する場合は、TCPストリームのコンテンツのキャプチャと再構築専用のツールである tcpflow を試すことができます。
他のオプションは、EricLawが提案する Charles または Fiddler などのHTTPデバッグプロキシを使用することです。これらには、HTTPの特定のサポートがあるという利点があり、さまざまな種類のエンコードや、再生するリクエストの保存やリクエストの編集などの他の機能の処理が容易になります。
Firebug (Firefox)、 Web Inspector (Safari、Chrome、およびその他のWebKitベースのブラウザー)、または Opera Dragonfly のようなツールを使用することもできます=、これらはすべて、リクエストおよびレスポンスのヘッダーとボディを表示する機能を提供します(ただし、ほとんどの場合、正確なバイトストリームを表示することはできませんが、代わりにブラウザーがリクエストを解析する方法を使用できます)。
最後に、telnet、 netcat 、または socat のようなものを使用してポート80に接続し、手動で要求を入力するか、または htty リクエストを簡単に構築し、レスポンスを検査するのに役立ちます。
別の選択肢があります: Chaosreader
したがって、xmlをサードパーティのアプリケーションにポストするアプリケーションをデバッグする必要があります。すべてのハードワークを実行する素晴らしい小さなPerlスクリプトを見つけました。tcpdump出力ファイルをチャックするだけで、すべての操作を実行し、必要なすべてを出力します...
スクリプトはchaosreader0.94と呼ばれます。 http://www.darknet.org.uk/2007/11/chaosreader-trace-tcpudp-sessions-from-tcpdump/ を参照してください
それは御treat走のように働いた、私は次のことをした:
tcpdump Host www.blah.com -s 9000 -w outputfile; Perl chaosreader0.94 outputfile