WEB 应用漏洞修复(绿盟科技扫描)与 Http 转 Https 解决方案

本文针对绿盟科技扫描出的常见 WEB 应用漏洞做具体的修复,并包含了 Http 如何转 Https 的详细解决方案。

1 扫描路径为 docs、examples、host-manager、manager 之下的漏洞

修复方案:删除 docs、examples、host-manager、manager 文件夹(该方法可以修复扫描出来的大部分漏洞)

2 点击劫持:X-Frame-Options 未配置

修复方案:配置过滤器,在过滤器中配置 X-Frame-Options 为 SAMEORIGIN。

response.setHeader("x-frame-options", "SAMEORIGIN");

示例:

  • 新增过滤器类 ResponseFilter.java
public class ResponseFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, 
FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        //设置 x-frame-options
        response.setHeader("x-frame-options", "SAMEORIGIN");
        filterChain.doFilter(request, response);
    }

    @Override
    public void destroy() {

    }
}
  • web.xml 中新增过滤器配置:


    ResponseFilter
    com.zpf.wisdom.common.filter.ResponseFilter


    ResponseFilter
    /*

配置完之后,启动服务器,访问应用,打开浏览器控制台,在 Response Headers 下面有 x-frame-options:SAMEORIGIN 项即为配置成功,如下图:

WEB 应用漏洞修复(绿盟科技扫描)与 Http 转 Https 解决方案_第1张图片
x-frame-options 配置成功

3 检测到错误页面web应用服务器版本信息泄露

修复方案:删除 tomcat/lib/catalina.jar 中 \org\apache\catalina\util 目录下的 ServerInfo.properties 文件中的版本等信息,具体操作如下:

  • 进入到 tomcat/lib 目录下,用电脑自带解压软件打 catalina.jar 进入到 \org\apache\catalina\util 目录下
  • 编辑 ServerInfo.properties 文件,编辑最后三行,去掉版本号等信息(可直接注释或删除)
  • 改完后自动跳出提示,点击“是”自动更新 catalina.jar 重新打包。

4 可通过 HTTP 获取远端 WWW 服务信息

修复方案:在 server.xml 文件中的 Connector 元素上添加 server 属性。如:


5 检测到基于 HTTP 的基本认证

修复方案:http 转 https。

5.1 安装(购买)证书

此处不做详细说明,请参考链接 https://blog.csdn.net/qq_16503045/article/details/90774917。
(仅参考链接文章前面证书部分,后面 tomcat 配置部分有点缺失)

5.2 拷贝证书到 tomcat

我们已经获得了证书和证书密码,那么就将证书拷贝到 tomcat 的 conf 文件夹下。

5.3 配置使 https 可以访问应用

https 默认的端口是 443,它和 8443 端口的关系就如同 http 的 80 端口和 8080 端口一样。因此需要先在 server.xml 中配置该端口。

默认情况下,tomcat 的 8443 端口是注释掉的,那么去掉注释,打开端口 8443 的配置,将 port 属性值修改为 443,并添加证书配置项:

  • keystoreFile="cert/200613478180598.pfx"
  • keystoreType="PKCS12"
  • keystorePass="证书密码"

完整配置示例如下,以 tomcat 8.0 为例:


注意:keystoreFilekeystorePass 两项需要修改。其中 keystoreFile 为证书路径,可以是绝对路径或相对路径,相对路径是相对于环境变量中 tomcat 配置的路径,上面示例中使用了绝对路径。keystorePass 则为证书密码。

配置完这些,就可以启动 tomcat ,使用 https 访问。此时,使用 http 和 https 都可以访问到应用。

5.4 配置使 http 自动转 https

如果想要输入 http 访问时自动转为 https,还需要做以下配置:

  • 修改 conf 文件夹下的 server.xml 中相应 redirectPort
    将所有的 redirectPort="8443" 修改为 redirectPort="443",如:

    
    
    
    
  • 在 conf 文件夹下的 web.xml 文件的 中增加代码段:

    
        
            SSL
            /*
        
        
            CONFIDENTIAL
        
    
    

配置完这两个文件,重启 tomcat,使用 http 访问应用,会发现成功跳转为 https 访问。

你可能感兴趣的