1、Apache JServ protocol service
描述:
问题出在Tomcat的8009端口,错误的提示是8009端口上运行着tcp协议。
修复方案:
解决办法:
只能是通过关闭8009端口来实现
Apache JServ protocol = AJP 解决方案:修改tomcat 的service.xml配置文件 将
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 这一行注释掉
2、Slow HTTP DEnial of Service Attack
描述:利用HTTP POST请求时,指定一个非常大的content-length,然后以很低的速度发包,比如10-100s发一个字节并保持这个连接不断开。当客户端连接数达到一定程度,占用服务器的所有可用连接,从而导致DOS。
修复方案:
对web服务器的http头部传输的最大许可时间进行限制,修改成最大许可时间为20 秒
以tomcat为例,打开server.xml找到
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
将其中的connectionTimeout="20000"改为connectionTimeout="8000",其单位是毫秒。
3、Apache Tomcat sample files
描述:Apache Tomcat示例目录漏洞
修复方案:
删除Tomcat默认安装目录下所有文件
4、HTML form without CSRF protection
描述: HTML form without CSRF protection =HTML表单没有CSRF保护
修复方案:
html头部引入
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
request.getSession().setAttribute("randTxt",uuid);
//设置cookie只读
String sessionid = request.getSession().getId();
response.setHeader("SET-COOKIE", "JSESSIONID=" + sessionid + "; secure ; HttpOnly");
from表单中映入隐藏input
<input type="hidden" name="randSesion" value = "<%=request.getSession().getAttribute("randTxt")%>" />
5、Apache Tomcat Application Error
描述:
当服务器出现错误的时候,发生500错误时,有关服务器出现的问题信息,会展现在浏览器的页面上Tomcat的路径,这样就会把服务器的路径暴露在对服务器攻击的攻击者,攻击者可以利用这些信息进行攻击,所以需要我们处理这些错误的提示信息!
修复方案:
<Host/>属性:name:主机域名
appBase:该主机下的所有应用所在的文件目录
在conf/catalina.properties中最后添加2行:
tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
在conf/server.xml中的<Connector>节点中,添加2个属性:
relaxedPathChars="|{}[]"
relaxedQueryChars="|{}[]"
JQUERY版本过低
修复方案:
修改文件中的所有版本好为最新版本
末尾加上$.fn.jquery = "";
SSL证书版本低修复
修复方案
生成新的证书替换
keytool -genkey -alias jboss -keypass 123456 -keyalg RSA -keysize 2048 -validity 36500 -keystore /Users/server_bac.keystore -storepass 123456