文章目录
- 漏洞原理
- 虚拟主机配置
- Host头部字段
- Host碰撞漏洞
- 漏洞场景
- 工具
漏洞原理
Host 碰撞漏洞,也称为主机名冲突漏洞,是一种网络攻击手段。常见危害有:绕过访问控制,通过公网访问一些未经授权的资源等。
虚拟主机配置
在Web服务器(如Nginx或Apache)上,多个网站可以共享同一个IP地址。例如a.com->1.1.1.1,b.com->1.1.1.1,则将a.com和b.com称为虚拟主机(Virtual Hosts)。
每个虚拟主机通过域名区分,并在Web服务器的配置文件中进行绑定。例如,在Nginx中通过server_name指令,在Apache中通过ServerName指令来绑定域名。
Host头部字段
当客户端向服务器发送HTTP请求时,请求头部包含一个Host字段,指明了请求的目标域名。
Web服务器通过Host字段来确定应该处理哪个虚拟主机的请求。
如上图,请求www.baidu.com时,服务器通过该字段来确定处理www.baidu.com这个虚拟主机的请求,然后下发资源。
Host碰撞漏洞
如果Web服务器没有正确验证HTTP请求中的Host字段的值,则可以通过伪造或修改Host字段,访问其他虚拟主机上的资源。
漏洞场景
由上可知,若存在如下场景,则存在Host碰撞