web-dev-qa-db-ja.com

tcpdumpでhttpトークンをキャプチャする

私のサーバーは、トークンを使用していくつかのAPIに対してcurlコマンドを実行します。例えば:

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

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

2
Omri

tcpdumpを使用してHTTPトラフィックをリッスンし、実際のパケットの内容を確認するには、次のようにします。

Sudo tcpdump -X -s 1500 "port 80 and Host mysite.example.com"

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

したがって、さらに、ngrepを使用して、ネットワークインターフェイス上の特定の文字列データでlinesをリッスンすることもできます。

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"
2
Rui F Ribeiro