freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

在Web服务器防止Host头攻击
FreeBuf_308666 2018-07-30 14:00:08 3627285

前言

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

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

在web服务器防止Host头攻击

该跳转路径不是web项目定义的,是中间件自动跳转的,所以不能用编写静态变量的方法修复,web项目中的全局过滤器也无法拦截。需要在web服务器层面配置才能修复。下面给出几种常见服务器的参考修复方法,其中如有错误或不妥的地方欢迎指正。

Apache:

方法一:

修改\conf\httpd.conf文件

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

ServerName www.domain.com:80

添加下列行

UseCanonicalName On

在web服务器防止Host头攻击重启Apache即可。

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

 Clipboard Image.png

参数解释:

在web服务器防止Host头攻击

方法二:

修改\conf\httpd.conf文件

参考以下配置添加:

NameVirtualHost 192.168.0.16

<VirtualHost 192.168.0.16>

ServerName 192.168.0.16

<Location />

Order Allow,Deny

Deny from all

</Location>

</VirtualHost>


<VirtualHost 192.168.0.16>

DocumentRoot "C:\www"

ServerName www.test.com

</VirtualHost>

重启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"去除前面的"#"号

添加类似以下配置:

RewriteEngine on

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

RewriteRule ^(.*)$ /error.html

重启Apache即可。

作用:

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

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

方法一:

修改nginx.conf

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

例子如下:

server {

       listen 8888 default;

       server_name _;

       location / {

            return 403;

       }

       }

重启nginx即可。

方法二:

修改nginx.conf

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

server {

       server_name  192.168.0.171;

       listen       8888;

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

        {

        return 403;

        }

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

       location / {

       root /www/dvwa;

       index index.php index.html index.htm;

       }

       }

重启nginx即可。

在web服务器防止Host头攻击

Tomcat:

修改tomcat\conf\server.xml

找到如下位置:

在web服务器防止Host头攻击将Host里的name修改为静态的域名,如下:

在web服务器防止Host头攻击重启tomcat即完成修复。

IIS6.0:

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

插件安装包和破解工具下载地址:https://pan.baidu.com/s/1hZVfCm7FraQWHlKMKyItFQ

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

在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 重写模块工具,可对请求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头攻击选择请求阻止。

在web服务器防止Host头攻击参照下图进行配置规则,主机头那填写好网站域名或ip即可,然后点击确定。

在web服务器防止Host头攻击此时双击刚创建的规则。

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

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

在web服务器防止Host头攻击

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

# web服务器 # host头
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 FreeBuf_308666 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
FreeBuf_308666 LV.1
这家伙太懒了,还未填写个人描述!
  • 1 文章数
  • 3 关注者
文章目录