java框架漏洞_Spring 框架漏洞集合「建议收藏」

java框架漏洞_Spring 框架漏洞集合「建议收藏」虽说是Spring框架漏洞,但以下包含并不仅SpringFramework,SpringBoot,还有SpringCloud,SpringData,SpringSecurity等。CVE-2010-1622SpringFrameworkclass.classLoader类远程代码执行影响版本:SpringSourceSpringFramework3.0.0-3.0.2、S…

大家好,又见面了,我是你们的朋友全栈君。

虽说是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:

f987fce221d272e00bc37b9af715a83a.png

执行命令:

a13448a2df4d94c6a69d7ca5dd05c3d6.png

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

如果要执行反弹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执行

7a59c576b7df1210d8e7a5acb8e04f89.png

0d0fb24e68c8d2e5ad9cec2643957e00.png

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

3bd59868f41a3f56afc2f5aa0fe55e2b.png

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执行:

b145f9515be6dfae1704f722e9911a70.png

9ab77b14d1065ec9443fdf37d90bca34.png

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包,点击后会有这么一个请求

7933f88887e0e5a0b7c0f35f974be382.png

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

9447edbdbc1641c0bdcb3de11ba53c3c.png

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

d90693198bd436be426716b8e44c686c.png

或者尝试使用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表达式注入漏洞

影响版本:

532c0438fd211a5d3332cf0c0ee41ffc.png

POC:

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

影响版本:

此漏洞和CVE-2016-4977类似

POC:

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

影响版本:

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

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

555693c4fd4e0f60b4606232c3aeff14.png

即授权了读取权限的时候,修改为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。

9dd47099c71a6fb63b84693f6ca1f235.png

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:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157019.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 薅羊毛利器—Loon,Cookie放在本地一点也不担心[通俗易懂]

    LoonLoon是一款在iOS系统下的代理工具(目前还没有Android版本),它支持在本地执行js脚本,只需简单配置即可成为薅羊毛利器ps之前的羊毛脚本已经失效了下载可以去美区AppStore下载,价格$4.99,需要有一个美区的AppleId账号,并且充值美元可以去某宝或拼夕夕搜索并购买,价格大概在¥9.99配置然后将下面框里面的配置赋值粘贴进去,点击保存[General]#IPv6支持ipv6=false##skip-proxy和bypass-tun一般不需

    2022年4月14日
    147
  • java的rsa加密算法_用java编程实现RSA加密算法

    java的rsa加密算法_用java编程实现RSA加密算法RSA加密算法是目前应用最广泛的公钥加密算法,特别适用于通过Internet传送的数据,常用于数字签名和密钥交换。那么我今天就给大家介绍一下如何利用Java编程来实现RSA加密算法。一、RSA加密算法描述RSA加密算法是1978年提出的。经过多年的分析和研究,在众多的公开密钥加密算法中,RSA加密算法最受推崇,它也被推荐为公开密钥数据加密标准。由数论知识可知,若将一个具有大素数因子的合数进行分解是…

    2022年5月8日
    297
  • navicat premium 15 for mac 激活码【中文破解版】[通俗易懂]

    (navicat premium 15 for mac 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
    53
  • clion激活码2021_最新在线免费激活

    (clion激活码2021)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日
    69
  • xml文件格式例如以下

    xml文件格式例如以下

    2021年11月28日
    54
  • 使用python快速开发桌面小工具

    使用python快速开发桌面小工具参考链接WelcometoPython.orgExtendingandEmbeddingthePythonInterpreter—Python3.7.3documentation起因更重要在日常开发中,总需要一些普通的小工具。小工具嘛,要得急,写得也急,总有很多不完善的问题,频繁修改成了一个较大的问题。比如之前用c#写了一个将excel表自动转成csv文本的工具,…

    2022年5月20日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号