httpホストヘッダーは基本的に、サーバー構成内の(潜在的に多くの)名前付きベースのホストのどれかを使用して要求を処理する必要があるかを判断する文字列として使用されます。
あなたがHTTPリクエストを偽造し、このヘッダがオーバー送られてしまったとしましょう:ウェブマスターは、サーバーを構成した場合、これはあなたが攻撃したいPHPスクリプトを介して取得でき
Host: <script>alert('foo');</script>.example.com
ONLY方法ですその明示的なホスト名を許可するサイト定義、またはワイルドカードの名前付け
<VirtualHost ...
ServerName www.example.com
ServerAlias *.example.com
</VirtualHost>
ワイルドカードが.example.com
前に何でもすることができますので、あなたのJS-hostnameは、経由になるだろう。
しかし、このように構成されたバーチャルホスト:あなたが提供してきたホスト名が設定され、ホスト名のいずれかにマッチしていないので、
<Virtualhost ...>
Servername www.example.com
ServerAlias web.example.com
</Virtualhost
は、脆弱ではないでしょう。リクエストは他のキャッチオール仮想ホストによって処理されるかもしれませんが、あなたの脆弱なスクリプトがそのサイトに存在しないので、それはあなたにとって役に立たないのです。
元の質問に対する私の答えをご覧ください。それは、攻撃者が攻撃を実際に行う方法を網羅しています。反映された部分は実際には適用されませんが、格納されたxss、キャッシュポイズニングまたはブラウザプラグインは行いません。 –
[HTTPヘッダーXSSの脆弱性を悪用するにはどうすればいいですか?](http://stackoverflow.com/questions/39521743/how-to-exploit-http-header-xss-vulnerability) – Cheesebaron