虽说是Spring框架漏洞,但以下包含并不仅Spring Framework,Spring Boot,还有Spring Cloud,Spring Data,Spring Security等。

CVE-2010-1622 Spring Framework class.classLoader类远程代码执行

影响版本:SpringSource Spring Framework 3.0.0 - 3.0.2、SpringSource Spring Framework 2.5.0 - 2.5.7

Spring框架提供了一种机制,该机制使用客户端提供的数据来更新对象属性。这个机制允许攻击者修改用于加载对象的类加载器的属性(通过’class.classloader’)。这可能导致任意命令执行,例如,攻击者可以修改URL。由类加载器用来指向攻击者控制的位置。

如何构造这个jar,需要包含以下信息:

/META-INF/spring-form.tld文件:

/META-INF/tags/InputTag.tag

做出这样的替换后,当开发者在controller中将任何一个对象绑定表单,并且最终展示的jsp内容有下面这些:

攻击者访问url,即可触发远程代码执行的效果:

如果服务器大于tomcat6.0.28版本,这样做会把所有的input标签替换掉,导致不能正常显示。需要修改

spring-form.tld,给其中的inputtag改名,name改为inputkxlzx:

在文件中新加入一个tag,叫做input:

InputTag.tag的内容:

访问的时候需要在参数中携带kxlzxcmd

CVE-2013-4152 Spring Framework中的XML外部实体(XXE)注入

影响版本:3.0.0至3.2.3、4.0.0.M1

受影响版本容易受到XML外部实体(XXE)注入的攻击。该SourceHttpMessageConverter处理器不会禁用外部实体解析,这使远程攻击者可以读取任意文件。

当传输xml结构体时,如

外部XML实体- xxe是使用系统标识符定义的,并存在于DOCTYPE标头中。这些实体可以访问本地或远程内容。例如,以下代码包含一个外部XML实体,该实体将获取的内容 /etc/passwd并将其显示给呈现给用户。

其他XXE注入攻击可以访问可能无法停止返回数据的本地资源,这可能会影响应用程序可用性并导致拒绝服务。

CVE-2013-7315 Spring Framework中的XML外部实体

影响版本:3.2.0至3.2.3、4.0.0.M1-4.0.0.M2(Spring MVC)

由于对 CVE-2013-4152和CVE-2013-6429的修复不完整导致。

受影响版本容易受到XML外部实体(XXE)注入的攻击。该SourceHttpMessageConverter处理器不会禁用外部实体解析,这使远程攻击者可以读取任意文件。

当传输xml结构体时,如

外部XML实体- xxe是使用系统标识符定义的,并存在于DOCTYPE标头中。这些实体可以访问本地或远程内容。例如,以下代码包含一个外部XML实体,该实体将获取的内容 /etc/passwd并将其显示给呈现给用户。

其他XXE注入攻击可以访问可能无法停止返回数据的本地资源,这可能会影响应用程序可用性并导致拒绝服务。

CVE-2014-3527 Spring Security验证绕过漏洞

影响版本:

CVE-2014-0097 Spring Security认证绕过

影响版本:Spring Security 3.2.0至3.2.1和3.1.0至3.1.5

CVE-2014-3578 Spring Framework 目录遍历漏洞

影响版本:

在web.xml存在如下情况下存在目录遍历:

访问:

CVE-2016-2173 Spring AMQP中的远程代码执行

影响版本:1.0.0至1.5.4

使用方式:

本来想根据配置来搭一个环境处理,结果环境一直搭不起来,构建各种失败,就先放这个利用poc把。

CVE-2016-4977 SpringSecurityOauth 远程命令执行漏洞

影响版本:2.0.0-2.0.9、1.0.0-1.0.5

漏洞利用POC:

执行命令:

但是此命令执行,不会在页面上显示,只会打印出运行的对象。

如果要执行反弹shell等命令,由于页面HTML编码的原因,SPEL返回值时进行了一次html编码,所以导致取出的 值时会进行一次转义,利用如下脚本加工。

执行输出后再添加:

CNVD-2016-04742 Spring Boot框架SPEL表达式注入漏洞

影响版本:1.1.0-1.1.12、1.2.0-1.2.7、1.3.0

POC:

CVE-2016-6652 Spring Data JPA SQL盲注

影响版本:Spring Data JPA 1.10.2、1.9.4

CVE-2017-4971 Spring WebFlow 远程代码执行漏洞

影响版本:Spring Web Flow 2.4.0 to 2.4.4

使用vulhub搭建环境后,在添加poc执行

无害化payload检测,如果 response header 中出现 vulnerable 头,则有漏洞:

CVE-2017-8045 Spring Amqp中的远程代码执行

影响版本:1.7.4、1.6.11和1.5.7之前的Spring AMQP版本

CVE-2017-8046 Spring Data REST PATCH请求远程执行代码

影响版本:Spring Data REST 2.5.12, 2.6.7, 3.0 RC3之前的版本、Spring Data release trains Kay-RC3之前的版本、Spring Boot 2.0.0M4之前的版本

利用POC执行:

CVE-2018-1258 Spring Security未经授权的访问

影响版本:Spring Framework 5.0.5.RELEASE和Spring Security(任何版本)

暂无详细信息

CVE-2018-1259 具有XMLBeam的Spring DataXXE

影响版本:

CVE-2018-1270 Spring Messaging远程代码执行漏洞

影响版本:Spring Framework 5.0 to 5.0.4。Spring Framework 4.3 to 4.3.14

同样利用vulhub搭建环境,首先我们先拦截connect,查看通过的ws包,点击后会有这么一个请求

从bp中看到来回四个包,其中的内容为如上所示,修改如下请求包

在发送任意消息,即可触发

或者尝试使用vulhub提供的脚本,但是此脚本并不具备通用性,需要修改使用poc

CVE-2018-1271 Spring MVC 目录穿越漏洞

当Spring MVC的静态资源存放在Windows系统上时,攻击可以通过构造特殊URL导致目录遍历漏洞。

此漏洞触发条件较高:

Server运行于Windows系统上

从文件系统提供的文件服务(比如使用file协议,但不是file open)

没有使用CVE-2018-1199漏洞的补丁

不使用Tomcat或者是WildFly做Server

漏洞利用和复现:

CVE-2018-1273 Spring Expression Language SPEL表达式注入漏洞

影响版本:

POC:

CVE-2018-1260 Spring Security Oauth2 远程代码执行

影响版本:

此漏洞和CVE-2016-4977类似

POC:

CVE-2018-15758 spring-security-oauth2权限提升

影响版本:

使用了EnableResourceServer并且用了AuthorizationRequest的话。那么攻击者可以重新发送一次用过的验证请求,或者进行相应参数修改,从而造成权限提升。

例如劫持code,并且篡改其中的scope到all的话:

即授权了读取权限的时候,修改为all就可以获得全部权限。

CVE-2019-3799 Spring Cloud Config Server: 目录遍历

影响版本:Spring-Cloud-Config-Server < 2.1.2, 2.0.4, 1.4.6

构建成功后访问:

![image-20200401100511941](Spring 漏洞.assets/image-20200401100511941.png)

其中路径代表:/{name}/{profile}/{label}/,如下中所显示的json。

CVE-2019-3778 Spring Security OAuth 开放重定向

影响版本:

用户登录后,CLIENT APP执行的以下请求包含REDIRECT_URI参数。 只需添加一个百分号即可触发重定向,而不是通过RedirectMismatchException错误来绕过验证。

例如原始请求如下:

只需要修改为:

这样就不会产生原本的认证错误,而且直接跳转到地址

CNVD-2019-11630 Spring Boot Actuator命令执行漏洞

这个漏洞并不像是单一的问题产生,更像是一个渗透入侵的过程。有很多值得在意的知识点

Spring Boot 1-1.4,无需身份验证即可访问以下敏感路径,而在2.x中,存在于/actuator路径下。

jolokia进行远程代码执行,Jolokia允许通过HTTP访问所有已注册的MBean,并且旨在执行与JMX相同的操作。可以使用URL列出所有可用的MBeans操作:http://127.0.0.1:8090/jolokia/list

Logback库提供的reloadByURL操作使我们可以从外部URL重新加载日志配置,地址如:

通过/env来修改配置

如果Spring Cloud Libraries在类路径中,则**’/ env’**端点允许您修改Spring环境属性。

此属性将Eureka serviceURL修改为任意值。Eureka Server通常用作发现服务器,目标类路径中具有Eureka-Client <1.8.7,则可以利用其中的XStream反序列化漏洞。

其中xstream的内容类似如下:

然后调用’/ refresh’端点。

有一种通过Spring环境属性修改来实现RCE的更可靠方法:

该请求修改了“ spring.cloud.bootstrap.location”属性,该属性用于加载外部配置并以YAML格式解析它。为了做到这一点,我们还需要调用“/refresh”端点。

从远程服务器获取YAML配置时,将使用SnakeYAML库进行解析,该库也容易受到反序列化攻击。有效载荷(yaml-payload.yml)可以通过使用前述的Marshalsec研究生成:

该jar文件的反序列化将触发提供的URLClassLoader的ScriptEngineManager构造函数的执行。jar文件可以在如下地址找到:https://github.com/artsploit/yaml-payload

/env配置

除了关于执行RCE的地方,还有一些设置也很有用。

**spring.datasource.tomcat.validationQuery = drop + table + users-**允许您指定任何SQL查询,它将针对当前数据库自动执行。它可以是任何语句,包括插入,更新或删除。

这种设置只在1.x中,在Spring Boot 2.x中,改为了json格式。

CVE-2019-11269 Spring Security OAuth 开放重定向

此漏洞为CVE-2019-3778的延伸版本,效果一致

影响版本:

CVE-2020-5398 Spring Framework RFD漏洞

影响版本: Spring Framework, versions 5.2.0 to 5.2.3, 5.1.0 to 5.1.13, 5.0.0 to 5.0.16

触发此漏洞的要求可以控制content-disposition文件名和扩展名来下载文件。触发的类型有些类似钓鱼文件。

先准备一个受控制的配置文件等,上传到受信的服务器中,虽然对服务器不造成影响。但是可以在其中注入一些payload。

由于下载的文件名是受前端控制,发送filename的时候可以自己构造文件名下载。

spring对不能识别的文件下载的时候按照json格式来处理,但是url仍然可以使用。

当受害者点击如上的地址时,会下载一个.cmd执行文件。原来spring对这种问题的处理是添加后缀为txt来改变文件的可执行效果。

但是这个设置可以绕过,采用如下形式:

会在表头中闭合造成如下效果:

从而达到绕过限制来下载预先设定好的可执行文件等。

CVE-2020-5405 Spring Cloud Config路径穿越导致的信息泄露

影响版本:spring-cloud-config-server < 2.2.2

poc:

java框架漏洞_Spring 框架漏洞集合相关推荐

  1. java spring框架 注解_spring框架之注解的使用

    原标题:spring框架之注解的使用 今天是刘小爱自学Java的第122天. 感谢你的观看,谢谢你. 学习内容安排如下: Spring注解的使用. JavaWeb项目的搭建. Spring的Web集成 ...

  2. java四大模块_Spring框架七大模块

    核心容器(Spring Core) 核心容器提供Spring框架的基本功能.Spring以bean的方式组织和管理Java应用中的各个组件及其关系.Spring使用BeanFactory来产生和管理B ...

  3. java具名参数_Spring框架笔记(二十五)——NamedParameterJdbcTemplate与具名参数

    在经典的 JDBC 用法中, SQL 参数是用占位符 ? 表示,并且受到位置的限制. 定位参数的问题在于, 一旦参数的顺序发生变化, 就必须改变参数绑定. 在 Spring JDBC 框架中, 绑定 ...

  4. java 事件类型_Spring框架中有哪些不同类型的事件?

    Spring内置事件 内置事件中由系统内部进行发布,只需注入监听器 自定义事件 事件类需要继承ApplicationEvent,代码如下: public class BigEvent extends ...

  5. spring框架介绍_Spring框架介绍

    spring框架介绍 这是Spring框架和Spring核心概念的简介. 在本教程中,我们将介绍Spring Framework的主要优点和功能. 在随后的教程中,我们将学习有关Spring和Spri ...

  6. Fiora:漏洞PoC框架的图形版,快捷搜索PoC、一键运行Nuclei

    Fiora:漏洞PoC框架的图形版,快捷搜索PoC.一键运行Nuclei Fiora是LoL中的无双剑姬的名字,她善于发现对手防守弱点,实现精准打击.该项目为PoC框架nuclei提供图形界面,实现快 ...

  7. java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类...

    本文关键词: java集合框架  框架设计理念  容器 继承层级结构 继承图 集合框架中的抽象类  主要的实现类 实现类特性   集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...

  8. thinkphp日志泄漏漏洞_ThinkPHP框架任意代码执行漏洞的利用及其修复方法

    ThinkPHP是国内著名的开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.最早诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2 ...

  9. python工控开发框架_GitHub - hzglitter/isf: ISF(Industrial Security Framework),基于Python的工控漏洞利用框架...

    一.框架介绍 本框架主要使用Python语言开发,通过集成ShadowBroker释放的NSA工具Fuzzbunch攻击框架,开发一款适合工控漏洞利用的框架.由于Fuzzbunch攻击框架仅适用于Py ...

最新文章

  1. 27行代码AC_迷宫 2017年第八届蓝桥杯A组第一题(暴力、仿迷宫)
  2. 再深入 HTTP Referer【转】
  3. 印度评论九章量子计算机,张礼立:中国 “九章”量子计算机到底厉害在哪?...
  4. Python项目:生成微信好友头像拼接图
  5. codevs 2928 你缺什么
  6. unity3D与网页的交互
  7. SIM800(GPRS)拨号上网失败未能连接服务器
  8. html设置为壁纸win10,win10系统怎么设置桌面壁纸
  9. 【隔离的CAN通信接口-1Mbps】
  10. 阿里云建站百度收录吗?
  11. 使用小波包变换分析信号的matlab程序,使用小波包变换分析信号的MATLAB程序
  12. POI Excel插入行,下面的行动态移动
  13. abp vnext 通过Claim扩展用户表字段
  14. SQL 已更新或删除的行值要么不能使该行成为唯一行
  15. bash install.sh ********错误
  16. 如何查询计算机com口使用
  17. 王国维的人生3大境界
  18. OpenCV cvBoundingRect应用举例
  19. 初识Rust踩坑小记
  20. 要以一种平和的心态对待那些“可爱”的木马病毒

热门文章

  1. 【栈】python、单调栈解决收集雨水问题、力扣42题
  2. 手动录入…………久远的过去的东西。
  3. 超声波测距系统的设计实现(基于STM32 )-软件部分
  4. 代码质量与安全 | “吃狗粮”能够影响到代码质量?来了解一下!
  5. 【Java 8 新特性】Java 8 Util API: StringJoiner 详解 | 拼接字符串添加分隔符、前缀和后缀
  6. java计算机毕业设计汽车维修管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  7. 漏洞学习笔记——UAF漏洞
  8. 微店集团拟上市:宣称体量超过有赞,创始人王珂曾怒怼红杉资本
  9. mysql5.7zib配置_PHP 安装(支持GD 库)
  10. oracle统计函数