web-dev-qa-db-ja.com

不適切な入力処理攻撃を防ぐためのTomcat仮想ホスト

私は現在、サイトの脆弱性を修正しようとしています。基本的には、「不適切な入力処理」攻撃の1つのタイプです。

私のウェブサイトがwww.mywebsite.comで、ハッカーのウェブサイトwww.hacker.comがあるとしましょう。

www.mywebsite.comにリクエストが送信され、「Host」ヘッダーが変更された場合は常にwww.hacker.com、私のサイトはwww.mywebsite.comへのリダイレクトをURLとともに作成します。例えば.

正常:

Host: www.mywebsite.com 
GET  www.mywebsite.com/get/some/resources/
Reponse 200 ok

ハック:

Host: www.hacker.com (#been manually modified) 
GET  www.mywebsite.com/get/some/resources/
Response 302 
Send another Redirect to www.hacker.com/get/some/resources 

私のWebサイトはTomcat7で実行されており、未知のホストを何もしないと想定されるdefaultlocalhostにポイントすることで、仮想ホストを設定するソリューションを試しました。しかし、何らかの理由でリダイレクトを送信します。

こちらが私のserver.xmlホスト構成:

<Engine name="Catalina" defaultHost="defaultlocalhost" jvmRoute="jvm1">  
<Host name="www.mywebsite.com"  appBase="webapps"
        unpackWARs="true" autoDeploy="false" deployOnStartup="true">

    <Valve className="org.Apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log." suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  </Host>

  <Host name="defaultlocalhost"  >

  </Host>

それで、私の質問は、私はこの種の攻撃を防ぐための正しい軌道に乗っているのでしょうか?はいの場合、それでもうまくいかないのはなぜですか。 (最終的な目標は、渡されたのが正当なホストではない場合、リクエストは破棄/無視/ 404を返すが、302でリダイレクトしないことです)

前もって感謝します。

ここでの攻撃に関するその他の参照: http://www.skeletonscribe.net/2013/05/practical-http-Host-header-attacks.html

http://projects.webappsec.org/w/page/13246933/Improper%20Input%20Handling

3
CharlesC

まあ、私自身の質問に答えてしまう。

Tomcatユーザーメーリングリストに参加した後(サブスクライブメールアドレス:[email protected])。アンドレという名前の男が私がこれを解決するのを手伝ってくれました:

基本的に、私が間違ったことはappBasedefaultlocalhostにないことです

  <Host name="defaultlocalhost" appbase="whatever" >

  </Host>

上記の構成は、不正な要求が送信されるたびに404ステータスを正常に返しました。その理由は、appbaseを設定しない場合は常にデフォルトでwebappsになるため、元の構成では基本的に何もしなかったためです。

これが同様の問題を抱えていたすべての人に役立つことを願っています。

1
CharlesC