基本信息
漏洞名称:域名访问限制不严格漏洞
漏洞描述: 漏洞详情: 目标存在域名访问限制不严格漏洞。Http请求的Hostname字段没有严格的域名限制,导致可以绕过一些防护措施。 验证方法:
1.访问IP地址时host头可以改为任意域名 2.网站有域名得情况下可以直接通过IP访问网站内容 两种情况存在一种即为存在
漏洞危害
1. 攻击者可以通过直接访问IP绕过CDN、云WAF等云防护措施 2.
攻击者可以将恶意域名解析至服务器IP地址进行仿站,或导致服务器IP因解析恶意域名被查封。 3. 攻击者可以通过修改host头注入恶意代码至页面当中。
解决方案
配置WEB服务器,限制只能通过本地服务器解析的域名访问服务器。
Nginx,修改ngnix.conf文件,在server中指定一个server_name名单,并添加检测。
Nginx:
方法一:
修改nginx.conf
添加一个默认server,nginx 会根据访问头(request head)中Host
的数据来确定使用哪个server来处理当前请求。如果请求没有匹配任何 server,或者访问头(request
head)中没有包含Host的数据,那么nginx会将该请求路由给默认的
server,当host头被修改匹配不到server时会跳到该默认server,该默认server直接返回403错误。
server {
listen 8888 default_server;
server_name _;
access_log off;
return 403;
}
方法二:
修改nginx.conf
在目标server添加检测规则,参考以下配置:(if部分)
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;
}
}
Apache:
方法一
修改\conf\httpd.conf文件
修改ServerName为应用的域名,例如
ServerName www.domain.com:80
添加下列行
UseCanonicalName On
重启Apache即可。
方法二:
修改\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
Tomcat:
修改tomcat\conf\server.xml
找到如下位置:
将Host里的name修改为静态的域名,如下: