troushoo

Ubuntu でHTTP リクエストをキャプチャーし、それを再送する方法

Ubuntu でHTTP リクエストをキャプチャーし、それを再送する方法を紹介します。

使用するツールのインストール
tcptrace
tcpdump でキャプチャーしたネットワークトレースからHTTP リクエストを抽出するのに使用します。
以下のコマンドでインストール可能です。

sudo apt-get install tcptrace

HTTP リクエストをキャプチャーし再送する方法
1. tcpdump を使用してネットワークトレースをキャプチャーします。

sudo tcpdump –w full.pcap


2. ブラウザでサイトにアクセスします。


3. Ctrl + c でtcpdump のキャプチャーをストップします。


4. tcptrace を使用して、ネットワークトレースからHTTP リクエストを抽出します。
tcptrace –e full.pcap

上記コマンドを実行すると、TCP ストリームごとに.dat ファイルが作成されます。


5. HTTP リクエストのdat ファイルを見つけます。
今回は80 番ポートへの通信でしたので、tcptrace の出力より、u2v_contents.dat がそれに当たります。

ちなみに、u2v_contents.dat を開くと以下のようになっています。


6. HTTP セッションの.dat ファイルを読み込み、netcat を使用してWeb サーバーに送信します。
cat u2v_contents.dat | nc 192.168.137.169 80
すると、Web サーバーより返信が返ってきます。


補足
キャプチャーした際に使用したWeb サーバーと異なるWeb サーバーに送信するには、Host ヘッダーを変更します。
cat <dat ファイル> | sed 's/Host: prodserver/Host: devserver/' | nc devserver 80


情報元
capture and replay http post using tcpdump (英語)
  1. 2015/06/21(日) 23:08:08|
  2. Linux
  3. | トラックバック:0
  4. | コメント:0
<<レジストリキーの最終書き込み時刻を調べる2つの方法 | ホーム | Visual Studio でソースコードのタスク管理>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://troushoo.blog.fc2.com/tb.php/244-cf23c13e
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (92)
ネットワーク (76)
Visual Studio (56)
SOS・Psscor2/Psscor4 (25)
WinDbg (25)
Linux (23)
Azure (17)
Tips (20)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する