Tomcat 虛擬主機以防止不當輸入處理攻擊
我目前正在嘗試修復站點漏洞,基本上它是一種“輸入不當”攻擊。
假設我的網站是 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
所以它基本上沒有對我原來的配置做任何事情。希望這可以幫助任何有類似問題的人。