web-dev-qa-db-ja.com

curlを使用して送信者のIPアドレスをスプーフィングするにはどうすればよいですか?

テストの目的で、スプーフィングされたIPアドレスでリクエストを行う必要があります。これを行う最も簡単な方法は何ですか?

40
jonderry

私自身の目的では、次の方法でHTTPヘッダーを変更するだけで十分でした。

curl --header "X-Forwarded-For: 1.2.3.4" "http://www.foobar.com"
64
jonderry

できません。

一般に、TCPのIPアドレスのスプーフィングは非常に困難です。ターゲットのかなり近く、またはスプーフィングしているIPの近くでルーターを制御できない限り、不可能と考えてください。

応答パケットには、 スリーウェイハンドシェイク を完了するためのパスが必要です。これを行う最も確実な方法は、ターゲットとスプーフィングされたIPアドレスの間の最も一般的な経路でルーターを制御することです。これにより、ターゲットとスプーフィングされたアドレスの間のパケットをキャプチャして転送できます。

偽のBGPルート アドバタイズメントを挿入することもできますが、そうすることは間違いなく気付かれ、ピアが完全にドロップしたときに多大なコストがかかります。

37
sarnold

実際のIPアドレスをlibcurlに見せかけたり隠したりできますか?

いいえ。libcurlはより高いレベルで動作します。その上、IPアドレスを偽造することは、作成された送信元アドレスでIPパケットを送信することを意味します。そして、通常、あなたに送られないため、返送されたパケットの受信で問題が発生します!

プロキシを使用してリモートサイトにアクセスする場合、サイトにはローカルIPアドレスは表示されず、代わりにプロキシのアドレスが表示されます。

また、多くのネットワークでは、NATまたはその他のIP改変手法が使用され、リモートサーバーからのアクセス元とは異なるIPアドレスをローカルで表示して使用することに注意してください。

7
armandino