【网络安全入门大总结】—Java语言中常用的渗透漏洞大汇总
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
简介
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来决定这个请求是否要调用某个ActionActionMppaer决定调用某个ActionFilterDispatcher把请求给ActionProxyActionProxy通过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一般指的是Spring Framework,一个轻量级Java应用程序开源框架,提供了简易的开发方式。
Spring MVC
Spring MVC根据Spring的模式设计的MVC框架,主要用于开发Web应用,简化开发。
Spring Boot
Spring在推出之初方案较为繁琐,因此提供了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 远程代码执行漏洞
Shiro
简介
Apache Shiro是一个功能强大且易于使用的Java安全框架,功能包括身份验证,授权,加密和会话管理。
CVE概览
CVE-2020-13933Apache Shiro < 1.6.0身份验证绕过漏洞
CVE-2020-11989SHIRO-782Apache Shiro < 1.5.3身份验证绕过漏洞
CVE-2020-1957SHIRO-682Apache Shiro < 1.5.2身份验证绕过漏洞
CVE-2019-12422SHIRO-721Apache Shiro < 1.4.2Padding Oracle Attack 远程代码执行漏洞
CVE-2016-4437SHIRO-550Apache Shiro <= 1.2.4反序列化远程代码执行漏洞
CVE-2014-0074SHIRO-460Apache Shiro < 1.2.3身份验证绕过漏洞
CVE-2020-13933
Apache Shiro 1.6.0之前的版本,由于Shiro拦截器与requestURI的匹配流程与Web框架的拦截器的匹配流程有差异,攻击者构造一个特殊的http请求,可以绕过Shiro的认证,未授权访问敏感路径。
CVE-2020-11989
Apache Shiro 1.5.3之前的版本,由于Shiro拦截器与requestURI的匹配流程与Web框架的拦截器的匹配流程有差异,攻击者构造一个特殊的http请求,可以绕过Shiro的认证,未授权访问敏感路径。此漏洞存在两种攻击方式。
CVE-2020-1957
Apache Shiro 1.5.2之前的版本,由于Shiro拦截器与requestURI的匹配流程与Web框架的拦截器的匹配流程有差异,攻击者构造一个特殊的http请求,可以绕过Shiro的认证,未授权访问敏感路径。
CVE-2019-12422
Apache Shiro 1.4.2之前的版本默认使用
AES/CBC/PKCS5Padding
模式加密,开启RememberMe功能的Shiro组件将允许远程攻击者构造序列化数据,通过Padding Oracle Attack进行爆破,即使在秘钥未知的条件下,也可以在目标服务器上执行任意命令。
CVE-2016-4437
Apache Shiro 1.2.5之前的版本在
org.apache.shiro.mgt.AbstractRememberMeManager
中存在AES默认秘钥kPH+bIxk5D2deZiIxcaaaA==
,开启RememberMe功能的Shiro组件将允许远程攻击者构造序列化数据,在目标服务器上执行任意命令。
好了~~~下期再见
【网络安全入门大总结】—Java语言中常用的渗透漏洞大汇总相关推荐
- JAVA语言异常_Java语言中常用异常类EoFException是用来处理( )异常的类_学小易找答案...
[填空题]Java语言中常用异常类ClassNotFoundException是用来处理 ( )的异常的类 [填空题]Java语言声明 ( ) 类为会产生"严重错误"的类 [简答题 ...
- java 三种错误类型 区别_请列举至少三种在java语言中发生“严重错误”的情况...
[简答题]自已编写一个自定义非整数异常类,来处理一个异常 [填空题]捕获异常时,可以把catch捕获的异常对象( ),使上层try-catch结构继续处理该异常事件;也可以把异常对象转换为其它异常对象 ...
- Java 语言中十大“坑爹”功能!
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源:https://www.sohu.com/a/35 ...
- Java快速入门学习笔记9 | Java语言中的方法
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java快速入门学习笔记8 | Java语言中的数组
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java快速入门学习笔记7 | Java语言中的类与对象
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java快速入门学习笔记3 | Java语言中的表达式与操作符
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java快速入门学习笔记2 | Java语言中的基本类型
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java语言中几个常用的包
Java语言中几个常用的包 Java采用包结构来组织和管理类和接口文件.本文介绍Java语言类库中几个常用的包,因为这几个包在软件开发与应用中经常需要用到,其中有些包是必要的.若是离开它,还真不能做事 ...
最新文章
- 自动机器学习:团队如何在自动学习项目中一起工作?
- Java-Maven(四):Eclipse集成Maven环境配置
- 区块链80%项目靠同一个故事拿钱,但标准链说最坏的时机就是好的开始
- linux下c语言按q退出_在linux下C语言写了一个while循环,怎么实现按任意键退出。如何编写程序?...
- 有效使用计算机操作系统,有效地使用计算机操作系统.doc
- SOA架构师注意的问题
- 每天都在红绿灯前面梭行,不如自己来实现个红绿灯?
- 百度地图 Android SDK - 个性化地图
- ios中解决图片渲染问题
- Java代码的编译与反编译那些事儿
- linux的/dev内容介绍
- Glide 4.x之ModelLoader简单分析
- React Router 全部
- ERP、CRM、SCM、电子商务、BI、ITSS
- SSR远程登陆服务器配置
- 快手首次透露商业化布局:将重点发力短视频广告
- 【网络空间安全】与【信息安全】专业介绍
- 微信公众号开发详细笔记
- Emscripten 单词_真正的英语大神绝不死背单词! 他们用这种方法一周突破3500词
- linux 安装apache apu,Apache编译安装
热门文章
- 买手机需要128 G的存储空间吗?
- solidity之call相关函数
- c语言程序设计小学生测验,c语言程序设计(1) 小学生计算机辅助教学系统
- SQL Server查询存储–概述
- SQL Server Always On可用性组中的数据同步
- libz.so.1: cannot open shared object file: No such file or directory
- 【10.1】python中的GIL
- Python 返回值、方法和函数的区别
- java之IO整理(下)
- jsonp使用,spring4.x对jsonp的支持