该漏洞的利用条件是可出网,可以POST访问/env接口设置属性,且可以访问/refresh刷新配置
在VPS上开启HTTP Server并放入基于ScriptEngineManager和URLClassLoader的yml,制作特殊的JAR并指定
通过/env设置spring.cloud.bootstrap.location属性再刷新配置即可利用SnakeYAML的反序列化漏洞实现RCE
该漏洞的利用条件同样是可出网,可以POST访问/env接口设置属性,且可以访问/refresh刷新配置
首先搭建恶意的XStream Server其中包含了Payload
通过/env设置eureka.client.serviceUrl.defaultZone属性再刷新配置即可访问远程XStream Payload触发反序列化达到RCE
如果目标可出网且存在/jolokia或/actuator/jolokia接口
通过/jolokia/list查看是否存在ch.qos.logback.classic.jmx.JMXConfigurator和reloadByURL关键词
搭建一个HTTP Server保存XML配置文件,再启动恶意的JNDI Server,请求指定的URL即可触发JNDI注入漏洞达到RCE
如果目标可出网且存在/jolokia或/actuator/jolokia接口
启动恶意的JNDI Server后调用createJNDIRealm创建JNDIRealm,然后写入JNDI相关的配置文件,重启后触发JNDI注入漏洞达到RCE
漏洞利用条件是可以访问/env设置属性,可以访问/restart重启应用
设置spring.datasource.hikari.connection-test-query属性为创建自定义函数的SQL语句,再数据库连接之前会执行该SQL语句
通过重启应用,建立新的数据库连接,触发包含命令执行的自定义函数,达到RCE
目标可出网且存在spring.h2.console.enabled=true属性时可以利用
首先通过/h2-console中记录下JSESSIONID值,然后启动恶意的JNDI Server,构造对应域名和JSESSIONID的特殊POST请求触发JNDI注入漏洞达到RCE
该漏洞的利用条件同样是可出网,可以POST访问/env接口设置属性,且可以访问/refresh刷新配置,不同的是需要存在mysql-connector-java依赖
通过/env得到mysql版本等信息,测试是否存在常见的Gadget依赖,访问spring.datasource.url设置指定的MySQL JDBC URL地址。刷新配置后当网站进行数据库操作时,会使用恶意的MySQL JDBC URL建立连接
恶意的MySQL Server会返回序列化Payload数据,利用本地的Gadget反序列化造成RCE
该漏洞的利用条件同样是可出网,可以POST访问/env接口设置属性,且可以访问/restart重启
搭建一个HTTP Server保存XML配置文件,再启动恶意的JNDI Server
通过/env接口设置logging.config属性为恶意的XML配置文件,重启触发JNDI注入漏洞达到RCE
该漏洞的利用条件同样是可出网,可以POST访问/env接口设置属性,且可以访问/restart重启
启动恶意的JNDI Server并通过/env接口设置logging.config属性为恶意的Groovy文件在重启后生效
在logback-classic组件的ch.qos.logback.classic.util.ContextInitializer中会判断url是否以groovy结尾,如果是则最终会执行文件内容中的groovy代码达到RCE
类似SpringBoot Restart logging.config Groovy RCE
组件中的org.springframework.boot.BeanDefinitionLoader判断url是否以groovy结尾,如果是则最终会执行文件内容中的groovy代码,造成RCE漏洞
该漏洞的利用条件同样是可出网,可以POST访问/env接口设置属性,且可以访问/restart重启
开一个HTTP Server保存恶意SQL语句,这是一个执行命令的函数,设置属性spring.datasource.data为该地址,重启后设置生效
组件中的org.springframework.boot.autoconfigure.jdbc.DataSourceInitializer使用runScripts方法执行请求URL内容中的SQL代码,造成RCE漏洞