JAVA 系统常用漏洞解决方案

为什么80%的码农都做不了架构师?>>>   hot3.png

1.struts2 命令执行漏洞

升级struts2版到最新版即可,目前官网最新版为34版(struts.apache.org)。

2.发现OGNL Console

修改struts2 配置文件的struts.devMode参数为false,升级后再验证

3.Weblogic Xmldecoder 反序列化命令执行

安装最新补丁包B25A(170718版本)

4.WEBlogic SSRF 服务端请求伪造

安装最新补丁包B25A(170718版本)

5.发现Oracle  weblogic  UUDI Explorer

Ø 安装最新补丁包且删除domain/serverName/tmp/.internal/uddiexplorer.war 

Ø 通过F5 irule策略过滤/uddiexplorer的访问

when HTTP_REQUEST {
 #过滤weblogic uddiexplorer目录,禁止外网访问
 if { [HTTP::uri]  starts_with "/uddiexplorer" } {
     pool pool1
 }
 }

参考:https://secvul.com/topics/288.html

6.SVN 信息泄露

删除部署包的.svn文件或目录

7.HTTP Host 头部攻击

Ø 增加host头的判断是否与本站一致

import org.apache.commons.lang.StringUtils; //引入字符串处理包

//主机ip和端口 或 域名和端口 的判别,需更新成自己站点的地址端口或IP,需测试(网上提供的方法)

String myhosts = request.getHeader("host");

 if(!StringUtils.equals(myhosts, "xx.xx.xxx.xxx:xxxx") && !StringUtils.equals(myhosts, "xx.xx.xxx.xxx:xxxx")

 && !StringUtils.equals(myhosts, "xx.xx.xxx.xxx:xxxx")&&!StringUtils.equals(myhosts, "xx.xx.xxx.xxx")

 && !StringUtils.equals(myhosts, "xx.xx.xxx.xxx") && !StringUtils.equals(myhosts, "xx.xx.xxx.xxx") ){

 System.out.println("======访问host非法,已拦截======");

 response.sendRedirect(request.getContextPath() + "/login.jsp");

 return;

}

参考地址:http://www.360doc.com/content/15/0618/09/11975037_478924452.shtml

Ø 禁止使用request.getServerName() 方法

Ø F5增加判断

when HTTP_REQUEST {

#过滤非法请求

if { [HTTP::host] != "192.168.1.8" && [HTTP::host] != "xx.xx.xx.xx"  } {
        pool poo3
 }
 }

8.点击劫持:缺少X-Frame-Options头

增加头

X-Frame-Options共有三个值:

DENY

任何页面都不能被嵌入到iframe或者frame中。

SAMEORIGIN

页面只能被本站页面嵌入到iframe或者frame中。

ALLOW-FROM URI

页面自能被指定的Uri嵌入到iframe或frame中。

 

解决此问题我需要增加头X-Frame-Options=SAMEORIGIN即可解决;

不同应用服务器增加头的方式不同,主要有以下方法:

Ø 应用程序中的全局过滤中或在jsp、servlet中增加此head(response.addHeader("x-frame-options","SAMEORIGIN");

Ø F5配置

when HTTP_REQUEST { # HTTP_REQUEST事件 

   HTTP::header insert X-Frame-Options "SAMEORIGIN" 

#将变量X-Frame-Options插入至HTTP::header,变量值为SAMEORIGIN }

when HTTP_REQUEST {
  HTTP::header insert X-Frame-Options "SAMEORIGIN"
 }

Ø APACHE

#site配置里或conf配置文件中的空白行(全局)

Header always append X-Frame-Options SAMEORIGIN

Ø NGINX

#配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 ‘http', ‘server' 或者 ‘location' 的配置中
add_header X-Frame-Options SAMEORIGIN;

Ø HAProxy

rspadd X-Frame-Options:\ SAMEORIGIN

9.发现DWR框架测试页面

删除应用中的测试页面,如不使用DWR框架,也可在web.xml中的去除与dwrServlet相关的内容

转载于:https://my.oschina.net/farces/blog/1544582

你可能感兴趣的:(JAVA 系统常用漏洞解决方案)