HTTP host头攻击的技术

原文地址:https://blog.csdn.net/u012903926/article/details/81702224

一个有漏洞的JSP代码案例: 
这里写图片描述

使用HTTP代理工具,如BurpSuite篡改HTTP报文头部中HOST字段时,加红框中变量即客户端提交的HOST值,该值可被注入恶意代码。

request.getServerName( )方法引用HTTP报文头部中HOST字段

如过上面的页面在base标签里用了 basePath 
那么页面上js 或者 css 就会请求 被注入的恶意路径

还有一种就是情况访问网站时如果访问路径中缺少/,大多数中间件都会自动将路径补全,返回302或301跳转如下图,Location位置的域名会使用Host头的值。 
这里写图片描述

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

修复方法:

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;

       }

}

Tomcat: 
修改tomcat\conf\server.xml

找到如下位置: 
这里写图片描述 
将Host里的name修改为静态的域名,如下:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/tanga842428/article/details/81741555