Tomcat

Tomcat 虛擬主機以防止不當輸入處理攻擊

  • May 23, 2017

我目前正在嘗試修復站點漏洞,基本上它是一種“輸入不當”攻擊。

假設我的網站是 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 

我的網站在 Tomcat 7 上執行,我嘗試了一些解決方案,將未知主機指向一個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 "%r" %s %b" />
 </Host>

 <Host name="defaultlocalhost"  >

 </Host>

所以,我的問題是,我是否在正確的軌道上防止這種攻擊?如果是,我做錯了什麼仍然無法正常工作?(最終目標是,如果傳入的不是合法的Host,請求應該是discard/ignored/return 404但不重定向302

先感謝您。

更多關於攻擊的參考: http ://www.skeletonscribe.net/2013/05/practical-http-host-header-attacks.html

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

哦,好吧,最後回答我自己的問題。

加入 Tomcat 使用者郵件列表後(訂閱電子郵件地址:users@tomcat.apache.org)。有個叫安德烈的人幫我解決了這個問題:

基本上我做錯了什麼appBase在我的defaultlocalhost

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

 </Host>

每當發送非法請求時,上述配置成功返回 404 狀態。原因是只要你不設置appbase它總是預設為webapps所以它基本上沒有對我原來的配置做任何事情。

希望這可以幫助任何有類似問題的人。

引用自:https://serverfault.com/questions/850955