Host 头部攻击

1、漏洞描述

开发人员为了方便获取网站域名一般依赖HTTP Host header(比如在php里是_SERVER["HTTP_HOST"] ),而这个header很多情况下是靠不住的。而很多应用是直接把这个值不做html编码便输出到了页面中。

比如:<link href="http://_SERVER['HOST']"    (Joomla)还有的地方还包含有secret key和token,<a href="http://_SERVER['HOST']?token=topsecret">  (Django, Gallery, others)

2、漏洞检测

将请求包的Host字段值修改为 baidu.com 提交,发现服务器将 baidu.com 拼接到了from标签的action属性值中。

 

 3、修复建议

1.由于http请求的特点,host header的值其实是不可信的。唯一可信的只有SERVER_NAME,这个在Apache和Nginx里可以通过设置一个虚拟机来记录所有的非法host header。

2.Nginx,修改ngnix.conf文件,在server中指定一个server_name名单,并添加检测。

3.Apache,修改httpd.conf文件,指定ServerName,并开启UseCanonicalName选项。

4.Tomcat,修改server.xml文件,配置Host的name属性。

posted @ 2019-12-30 15:14  蹲在路边吃红薯  阅读(861)  评论(0编辑  收藏  举报