Security Tomcat虚拟主机防止不正确的输入处理攻击
我目前正在尝试修复一个站点漏洞,基本上这是一种“不正确的输入处理”攻击 假设我的网站是www.mywebsite.com 还有黑客的网站www.hacker.com 每当有请求发送到www.mywebsite.com时,修改后的“Security Tomcat虚拟主机防止不正确的输入处理攻击,security,tomcat,tomcat7,Security,Tomcat,Tomcat7,我目前正在尝试修复一个站点漏洞,基本上这是一种“不正确的输入处理”攻击 假设我的网站是www.mywebsite.com 还有黑客的网站www.hacker.com 每当有请求发送到www.mywebsite.com时,修改后的“Host”标题指向www.hacker.com,我的网站将创建一个重定向到www.mywebsite.com的url。 e、 g 正常: Host: www.mywebsite.com GET www.mywebsite.com/get/some/resources
Host
”标题指向www.hacker.com,我的网站将创建一个重定向到www.mywebsite.com的url。
e、 g
正常:
Host: www.mywebsite.com
GET www.mywebsite.com/get/some/resources/
Reponse 200 ok
黑客:
我的网站运行在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 "%r" %s %b" />
</Host>
<Host name="defaultlocalhost" >
</Host>
那么,我的问题是,我是否在正确的轨道上防止这种攻击?如果是,我做错了什么,仍然无法工作?(最终目标是,如果传入的不是合法主机,则请求应为discard/ignored/return 404,而不是使用302重定向)
先谢谢你
有关此攻击的更多参考信息,请参见此处:
哦,好吧,最后回答我自己的问题 加入Tomcat用户邮件列表后(订阅电子邮件地址:users@tomcat.apache.org). 有个叫安德烈的家伙帮我解决了这个问题: 基本上我做错的是我的
defaultlocalhost
<Host name="defaultlocalhost" appbase="whatever" >
</Host>
我使用你的代码,但它总是给我回复200 OK。你可能想发布你的配置,没有更多详细信息,我不能肯定出了什么问题。我们需要做什么来发送403(未授权)响应而不是404(未找到)?
<Host name="defaultlocalhost" appbase="whatever" >
</Host>
<Host name="defaultlocalhost" appbase="whatever">
<!-- deny all remote addresses to this host -->
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
deny="\d+\.\d+\.\d+\.\d+"/>
</Host>