2016-09-16 10 views
0

フォローアップ質問How to exploit HTTP header XSS vulnerability?HTTP "ホスト"ヘッダXSSの脆弱性を悪用するには?

ページがHTTP 'Host'ヘッダーの値をエスケープしないで印刷しているとします。したがって、ページはXSS攻撃に対して脆弱です。つまり、攻撃者はalert( 'xss');などのようなものを含む 'Host'ヘッダーでGETリクエストを作成できます。

しかし、これを実際にどのようにターゲットを攻撃するために使用できますか?どのようにして攻撃者は、特定のヘッダーで特定の要求をターゲットに発行させることができますか?

+0

元の質問に対する私の答えをご覧ください。それは、攻撃者が攻撃を実際に行う方法を網羅しています。反映された部分は実際には適用されませんが、格納されたxss、キャッシュポイズニングまたはブラウザプラグインは行いません。 –

+2

[HTTPヘッダーXSSの脆弱性を悪用するにはどうすればいいですか?](http://stackoverflow.com/questions/39521743/how-to-exploit-http-header-xss-vulnerability) – Cheesebaron

答えて

0

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 

は、脆弱ではないでしょう。リクエストは他のキャッチオール仮想ホストによって処理されるかもしれませんが、あなたの脆弱なスクリプトがそのサイトに存在しないので、それはあなたにとって役に立たないのです。

関連する問題