tcpdumpを使用したhttpトークンの取得

tcpdumpを使用したhttpトークンの取得

私のサーバーはトークンを使用して特定のAPIに対してカールコマンドを発行します。たとえば、

curl --header "Private-Token: aaaaaaaaaaaaaa" http://mysite.example.com/api/v4/any

tcpdump特定のトークンを使用してこのAPIに対するすべてのリクエストをキャプチャできますか?それでは、どうすればいいですか?他のアイデアも素晴らしいです。

ベストアンサー1

HTTP トラフィックを聞き、tcpdump実際のパケットの内容を表示するには、次のコマンドを使用できます。

sudo tcpdump -X -s 1500 "port 80 and host mysite.example.com"

ただし、データフィルタリングは特定のパケット位置でのみ実行できtcpdump、この場合は不可能です。

したがって、次のようにngrep聞くこともできます。ワイヤーネットワークインタフェースの特定の文字列データを使用します。

sudo ngrep -q "Private-Token: aaaaaaaaaaaaaa" "port 80 and host mysite.example.com"

実際のホスト/ポートフィルタについては、tcpdump/ BPFフィルタの簡単な概要を参照してください。TCPDUMP式

また、wireshark@StephenHarrisの推薦はグラフィカルなインターフェースを持っているので素晴らしいです。tcpdump後で使用できるようにファイルに生データを書き込むには、wireshark次のようにします。

sudo tcpdump -X -s 1500 "port 80 and host mysite.example.com" -w mycapture.pcap

キャプチャーアプリケーションレベルのパケット要求を使用することもできますsysdig。 (テストなしで答えを確信できない)

sudo sysdig -s 2000 -A -c echo_fds fd.port=80 and evt.buffer contains "Private-Token: aaaaaaaaaaaaaa"

おすすめ記事