私のウェブサイトにリンクを投稿する方法を知っている人はいますか?アクセスすると、ユーザーはホストヘッダーにカスタムコンテンツを含むサードパーティのサイトにHTTPリクエストを発行します(実際のホスト/ドメインとは異なります)リクエストはIPレベルで送信されます)?私の意図を明確にする短い例-www.example.comに送信されたリクエスト:
GET / HTTP/1.1
Host: $$CUSTOM_PAYLOAD$$ (not www.example.com)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
CUSTOMヘッダーを使用して要求を発行することについていくつかの議論を見てきましたが、ヘッダーは受信側が受け入れた正当なヘッダーであるため、これは当てはまりません。さらに、ホストヘッダーでの悪意のある入力に依存する攻撃(主にXSSを反映)に関するさまざまな出版物を見てきましたが、それらがどのように実行されるかはよくわかりません。
userにリクエストを発行させたい場合、XMLHttpRequestでこれを行うのは 不可能 です。
ヘッダーが次のヘッダーのいずれかで大文字と小文字を区別しない場合は、これらの手順を終了します。
Accept-Charset
Accept-Encoding
アクセス制御要求ヘッダー
アクセス制御要求メソッド
接続
コンテンツの長さ
Cookie
Cookie2
日付
DNT
期待する
ホスト
生き続ける
原点
リファラー
TE
トレーラー
転送エンコーディング
アップグレードする
ユーザーエージェント
Via
ただし、これは、IEと組み合わせて使用すると バージョン7および8のバグ が原因でFlashで可能でした。
IEでは、ヘッダー名にコロンを追加することで、より機密性の高いヘッダー(HostやContent-Lengthなど)を上書きすることもできます(この手法は、[3]のXmlHttpRequestのコンテキストで説明されています)。
req.addRequestHeader("Host:","foobar.site");
CURLなどのツールを使用して、リクエストを発行し、必要なリクエストを指定できます。 この投稿 は、リクエストでのHost
ヘッダーの設定について説明しています。
Webサイトを制御しているので、cURLまたはHost
を指定できるその他のツールを使用して、リンクが独自のサーバーへのリクエストを開始し、ターゲットサイトへのカスタマイズされたHTTPリクエストを起動することができますか?ヘッダ?
サーバー側で使用しているプログラミング言語によっては、そこから直接実行できる場合があります。
更新:これは機能しません。試してみてOPへの称賛! 「答え」を残して他の人の時間を節約する:)
免責事項:私はこれを試していませんし、それがうまくいくかどうかわかりません:)
ページにJavaScriptが含まれている場合、理論的には XMLHttpRequest および setRequestHeader を使用して、説明したようなリクエストを生成できます。