检测到目标URL存在http host头攻击漏洞,修复方案:在Web服务器防止Host头攻击

本文详细介绍了如何在Apache、Nginx、Tomcat和IIS服务器上修复因HTTP_HOST头攻击导致的漏洞,包括配置ServerName、虚拟主机、Rewrite规则和URL重写模块,确保安全访问权限。
摘要由CSDN通过智能技术生成

一、前言

漏洞描述:为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。例如,在php里用_SERVER[“HTTP_HOST”]。但是这个header是不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成恶意代码的传入。

访问网站时如果访问路径中缺少/,大多数中间件都会自动将路径补全,返回302或301跳转如下图,Location位置的域名会使用Host头的值。

这种情况实际上风险较低,难以构成Host头攻击。但是由于大多漏洞扫描器会将这种情况检测为Host头攻击,为了通过上级检查或各种审核,大多数甲方单位会要求修复漏洞,彻底解决问题。

在web服务器防止Host头攻击

该跳转路径不是web项目定义的,是中间件自动跳转的,所以不能用编写静态变量的方法修复,web项目中的全局过滤器也无法拦截。需要在web服务器层面配置才能修复。

下面给出几种常见服务器的参考修复方法,其中如有错误或不妥的地方欢迎指正。


二、Apache检测到目标URL存在http host头攻击漏洞,修复方案:

方法一:

修改\conf\httpd.conf文件

修改ServerName为应用的域名,例如

ServerName www.domain.com:80

添加下列行

UseCanonicalName On

在web服务器防止Host头攻击

重启Apache即可。修复成功的话会看到,服务器端将会使用设定好的ServerName。

Clipboard Image.png

参数解释:

在web服务器防止Host头攻击

方法二:

修改\conf\httpd.conf文件

参考以下配置添加:

 
  1. NameVirtualHost 192.168.0.16

  2. ServerName 192.168.0.16

  3. Order Allow,Deny

  4. Deny from all

  5. DocumentRoot "C:\www"

  6. ServerName www.test.com

重启Apache即可。

作用:

拒绝直接通过192.168.0.16这个IP的任何访问请求,这时如果你用192.168.0.16访问,会提示拒绝访问。仅允许通过www.test.com这个域名访问,主目录指向C:\www

在web服务器防止Host头攻击

方法三:

修改\conf\httpd.conf文件

找到”#LoadModule rewrite_module modules/mod_rewrite.so”去除前面的”#”号

添加类似以下配置:

 
  1. RewriteEngine on

  2. RewriteCond %{HTTP_HOST} !^192.168.0.16$ [NC]

  3. RewriteRule ^(.*)$ /error.html

重启Apache即可。

作用:

当HOST头不是192.168.0.16时,重定向到错误页面。

Clipboard Image.png在web服务器防止Host头攻击

三、Nginx检测到目标URL存在http host头攻击漏洞,修复方案:

方法一:

修改nginx.conf

添加一个默认server,当host头被修改匹配不到server时会跳到该默认server,该默认server直接返回403错误。

例子如下:

 
  1. server {

  2. listen 8888 default;

  3. server_name _;

  4. location / {

  5. return 403;

  6. }

  7. }

重启nginx即可。

方法二:

修改nginx.conf

在目标server添加检测规则,参考以下配置:

 
  1. server {

  2. server_name 192.168.0.171;

  3. listen 8888;

  4. if ($http_Host !~*^192.168.0.171:8888$)

  5. {

  6. return 403;

  7. }

  8. include /etc/nginx/default.d/*.conf;

  9. location / {

  10. root /www/dvwa;

  11. index index.php index.html index.htm;

  12. }

  13. }

重启nginx即可。

在web服务器防止Host头攻击

四、Tomcat检测到目标URL存在http host头攻击漏洞,修复方案:

修改tomcat\conf\server.xml

找到如下位置:

在web服务器防止Host头攻击

将Host里的name修改为静态的域名,如下:

在web服务器防止Host头攻击

重启tomcat即完成修复。

五、IIS6.0检测到目标URL存在http host头攻击漏洞,修复方案:

使用ISAPI_Rewrite插件对请求包内容进行检测并重写URL。

插件安装包和破解工具下载地址:https://pan.baidu.com/s/15MEAMMgAOwZsbZJAwkvX-w提取码:vw89

下载完成后双击程序一直点击下一步安装即可。

在web服务器防止Host头攻击

破解工具解压后如图三个文件

在web服务器防止Host头攻击

将破解的这三个文件直接复制粘贴到ISAPI_Rewrite的安装目录,也就是覆盖掉官方的原文件, 如果提示不能覆盖,你可以先将官方的这个三个文件重命名其它的名字,再将这个三个破解文件复制过来。

替换完成后,必须为ISAPI_Rewrite.dll添加SERVICE用户组,并授予读取、读取和运行权限。(该步非常重要,否则后续ISAPI_Rewrite将无法工作)。

Clipboard Image.png在web服务器防止Host头攻击

打开IIS管理工具,选择目标项目->属性->ISAPI筛选器->添加->选择你安装的ISAPI_Rewrite.dll文件的路径->确定

在web服务器防止Host头攻击

重启IIS和重新打开IIS管理工具,在目标项目->属性中可以看到新增的ISAPI_Rewrite标签,在这里可以根据需求直接写.htaccess规则进行重定向。

在web服务器防止Host头攻击

配置Host头白名单,可参考以下规则。

配置完成点击应用后,当请求包中Host字段不为设定好的192.168.2.141时,会自动跳转到报错页面。

在web服务器防止Host头攻击

六、IIS7.0/7.5/8.0检测到目标URL存在http host头攻击漏洞,修复方案:

微软推出了一款URL 重写模块工具,可对请求URL进行过滤处理,此工具需要自行安装,下面提供工具下载地址:

微软下载地址(64位): http://www.microsoft.com/zh-cn/download/details.aspx?id=7435

微软下载地址(32位): http://www.microsoft.com/zh-cn/download/details.aspx?id=5747

下载完成后双击程序一直点击下一步安装即可。

在web服务器防止Host头攻击

然后重新启动iis管理工具,此时可以看到IIS栏下有一个URL重写工具。

在web服务器防止Host头攻击

双击URL重写功能,然后在URL地址入站规则栏上添加规则。 选择请求阻止。

在web服务器防止Host头攻击

参照下图进行配置规则,主机头那填写好网站域名或ip即可,然后点击确定。

在web服务器防止Host头攻击

此时双击刚创建的规则。

在web服务器防止Host头攻击

在请求的URL选择项选择“与模式不匹配”,在使用项那选择“完成匹配”,在操作类型那选择“中止请求”,然后点击右上角的应用按钮。

在web服务器防止Host头攻击

然后重新启动网站,此时重新测试就会发现当host不是192.168.124.149时,服务器会中止请求,从而起到防范host头部的作用。

在web服务器防止Host头攻击

*本文作者:非凡安全广州分部,转载请注明来自 FreeBuf.COM

https://www.freebuf.com/articles/web/178315.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值