Java语言中常用的漏洞大汇总,建议收藏。
准备好,上课了~~~
目录
Servlet
简介
生命周期为
接口
Struts 2
. 简介
请求流程
相关CVE
Spring
简介
Spring MVC
Spring Boot
请求流程
CVE概览
Shiro
简介
CVE概览
CVE-2020-13933
CVE-2020-11989
CVE-2020-1957
CVE-2019-12422
CVE-2016-4437
上课了~~上课了~~~
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
生命周期为- 客户端请求该 Servlet
- 加载 Servlet 类到内存
- 实例化并调用init()方法初始化该 Servlet
- service()(根据请求方法不同调用
doGet()
/doPost()
/ ... /destroy()
init()
在 Servlet 的生命期中,仅执行一次 init() 方法,在服务器装入 Servlet 时执行。
service()
service() 方法是 Servlet 的核心。每当一个客户请求一个HttpServlet对象,该对象的 service() 方法就要被调用,而且传递给这个方法一个"请求"(ServletRequest)对象和一个"响应"(ServletResponse)对象作为参数。
Struts 2
. 简介
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
请求流程
客户端发送请求的tomcat服务器
请求经过一系列过滤器
FilterDispatcher调用ActionMapper来决定这个请求是否要调用某个Action
ActionMppaer决定调用某个ActionFilterDispatcher把请求给ActionProxy
ActionProxy通过Configuration Manager查看structs.xml,找到对应的Action类
ActionProxy创建一个ActionInvocation对象
ActionInvocation对象回调Action的execute方法
Action执行完毕后,ActionInvocation根据返回的字符串,找到相应的result,通过HttpServletResponse返回给服务器
相关CVE
- CVE-2016-3081 (S2-032)
- CVE-2016-3687 (S2-033)
- CVE-2016-4438 (S2-037)
- CVE-2017-5638
- CVE-2017-7672
- CVE-2017-9787
- CVE-2017-9793
- CVE-2017-9804
- CVE-2017-9805
- CVE-2017-12611
- CVE-2017-15707
- CVE-2018-1327
- CVE-2018-11776

Spring一般指的是Spring Framework,一个轻量级Java应用程序开源框架,提供了简易的开发方式。
Spring MVCSpring MVC根据Spring的模式设计的MVC框架,主要用于开发Web应用,简化开发。
Spring BootSpring在推出之初方案较为繁琐,因此提供了Spring Boot作为自动化配置工具,降低项目搭建的复杂度。
请求流程
用户发送请求给服务器
服务器收到请求,使用DispatchServlet处理
Dispatch使用HandleMapping检查url是否有对应的Controller,如果有,执行
如果Controller返回字符串,ViewResolver将字符串转换成相应的视图对象
DispatchServlet将视图对象中的数据,输出给服务器
服务器将数据输出给客户端
CVE概览
-
CVE-2018-1270
- Spring Websocket 远程代码执行漏洞
- Spring Framework 5.0 - 5.0.5
- Spring Framework 4.3 - 4.3.15
-
CVE-2018-1273
- Spring Data 远程代码执行漏洞
- Spring Data Commons 1.13 - 1.13.10
- Spring Data Commons 2.0 - 2.0.5
- Spring Data REST 2.6 - 2.6.10
- Spring Data REST 3.0 - 3.0.5
-
CVE-2017-8046
- Spring Data REST 远程代码执行漏洞
-
CVE-2017-4971
- Spring Web Flow 远程代码执行漏洞

Apache Shiro是一个功能强大且易于使用的Java安全框架,功能包括身份验证,授权,加密和会话管理。
CVE概览-
CVE-2020-13933 Apache Shiro < 1.6.0 身份验证绕过漏洞
-
CVE-2020-11989 SHIRO-782 Apache Shiro < 1.5.3 身份验证绕过漏洞
-
CVE-2020-1957 SHIRO-682 Apache Shiro < 1.5.2 身份验证绕过漏洞
-
CVE-2019-12422 SHIRO-721 Apache Shiro < 1.4.2 Padding Oracle Attack 远程代码执行漏洞
-
CVE-2016-4437 SHIRO-550 Apache Shiro
关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?


微信扫码登录