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语言中常用的渗透漏洞大汇总相关推荐

  1. JAVA语言异常_Java语言中常用异常类EoFException是用来处理( )异常的类_学小易找答案...

    [填空题]Java语言中常用异常类ClassNotFoundException是用来处理 ( )的异常的类 [填空题]Java语言声明 ( ) 类为会产生"严重错误"的类 [简答题 ...

  2. java 三种错误类型 区别_请列举至少三种在java语言中发生“严重错误”的情况...

    [简答题]自已编写一个自定义非整数异常类,来处理一个异常 [填空题]捕获异常时,可以把catch捕获的异常对象( ),使上层try-catch结构继续处理该异常事件;也可以把异常对象转换为其它异常对象 ...

  3. Java 语言中十大“坑爹”功能!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源:https://www.sohu.com/a/35 ...

  4. Java快速入门学习笔记9 | Java语言中的方法

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  5. Java快速入门学习笔记8 | Java语言中的数组

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  6. Java快速入门学习笔记7 | Java语言中的类与对象

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  7. Java快速入门学习笔记3 | Java语言中的表达式与操作符

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  8. Java快速入门学习笔记2 | Java语言中的基本类型

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  9. Java语言中几个常用的包

    Java语言中几个常用的包 Java采用包结构来组织和管理类和接口文件.本文介绍Java语言类库中几个常用的包,因为这几个包在软件开发与应用中经常需要用到,其中有些包是必要的.若是离开它,还真不能做事 ...

最新文章

  1. 自动机器学习:团队如何在自动学习项目中一起工作?
  2. Java-Maven(四):Eclipse集成Maven环境配置
  3. 区块链80%项目靠同一个故事拿钱,但标准链说最坏的时机就是好的开始
  4. linux下c语言按q退出_在linux下C语言写了一个while循环,怎么实现按任意键退出。如何编写程序?...
  5. 有效使用计算机操作系统,有效地使用计算机操作系统.doc
  6. SOA架构师注意的问题
  7. 每天都在红绿灯前面梭行,不如自己来实现个红绿灯?
  8. 百度地图 Android SDK - 个性化地图
  9. ios中解决图片渲染问题
  10. Java代码的编译与反编译那些事儿
  11. linux的/dev内容介绍
  12. Glide 4.x之ModelLoader简单分析
  13. React Router 全部
  14. ERP、CRM、SCM、电子商务、BI、ITSS
  15. SSR远程登陆服务器配置
  16. 快手首次透露商业化布局:将重点发力短视频广告
  17. 【网络空间安全】与【信息安全】专业介绍
  18. 微信公众号开发详细笔记
  19. Emscripten 单词_真正的英语大神绝不死背单词! 他们用这种方法一周突破3500词
  20. linux 安装apache apu,Apache编译安装

热门文章

  1. 买手机需要128 G的存储空间吗?
  2. solidity之call相关函数
  3. c语言程序设计小学生测验,c语言程序设计(1) 小学生计算机辅助教学系统
  4. SQL Server查询存储–概述
  5. SQL Server Always On可用性组中的数据同步
  6. libz.so.1: cannot open shared object file: No such file or directory
  7. 【10.1】python中的GIL
  8. Python 返回值、方法和函数的区别
  9. java之IO整理(下)
  10. jsonp使用,spring4.x对jsonp的支持