资料地址:https://github.com/LandGrey/SpringBootVulExploit#0x01whitelabel-error-page-spel-rce
目录
-
Spring Boot Vulnerability Exploit Check List
-
0x01:whitelabel error page SpEL RCE
-
0x02:spring cloud SnakeYAML RCE
-
0x03:eureka xstream deserialization RCE
-
0x04:jolokia logback JNDI RCE
-
0x05:jolokia Realm JNDI RCE
-
0x06:restart h2 database query RCE
-
0x07:h2 database console JNDI RCE
-
0x08:mysql jdbc deserialization RCE
-
0x09:restart logging.config logback JNDI RCE
-
0x0A:restart logging.config groovy RCE
-
0x0B:restart spring.main.sources groovy RCE
-
0x0C:restart spring.datasource.data h2 database RCE
-
步骤一:找到一个正常传参处
-
步骤二:执行 SpEL 表达式
-
利用条件:
-
利用方法:
-
漏洞原理:
-
漏洞分析:
-
漏洞环境:
-
步骤一:托管 yml 和 jar 文件
-
步骤二:设置 spring.cloud.bootstrap.location 属性
-
步骤三:刷新配置
-
利用条件:
-
利用方法:
-
漏洞原理:
-
漏洞分析:
-
漏洞环境:
-
步骤一:架设响应恶意 XStream payload 的网站
-
步骤二:监听反弹 shell 的端口
-
步骤三:设置 eureka.client.serviceUrl.defaultZone 属性
-
步骤四:刷新配置
-
利用条件:
-
利用方法:
-
漏洞原理:
-
漏洞分析:
-
漏洞环境:
-
步骤一:查看已存在的 MBeans
-
步骤二:托管 xml 文件
-
步骤三:准备要执行的 Java 代码
-
步骤四:架设恶意 ldap 服务
-
步骤五:监听反弹 shell 的端口
-
步骤六:从外部 URL 地址加载日志配置文件
-
利用条件:
-
利用方法:
-
漏洞原理:
-
漏洞分析:
-
漏洞环境:
-
步骤一:查看已存在的 MBeans
-
步骤二:准备要执行的 Java 代码
-
步骤三:托管 class 文件
-
步骤四:架设恶意 rmi 服务
-
步骤五:监听反弹 shell 的端口
-
步骤六:发送恶意 payload
-
利用条件:
-
利用方法:
-
漏洞原理:
-
漏洞分析:
-
漏洞环境:
-
步骤一:设置 spring.datasource.hikari.connection-test-query 属性
-
步骤二:重启应用
-
利用条件:
-
利用方法:
-
漏洞原理:
-
漏洞分析:
-
漏洞环境:
-
步骤一:访问路由获得 jsessionid
-
步骤二:准备要执行的 Java 代码
-
步骤三:托管 class 文件
-
步骤四:架设恶意 ldap 服务
-
步骤五:监听反弹 shell 的端口
-
步骤六:发包触发 JNDI 注入
-
利用条件:
-
利用方法:
-
漏洞分析:
-
漏洞环境:
-
步骤一:查看环境依赖
-
步骤二:架设恶意 rogue mysql server
-
步骤三:设置 spring.datasource.url 属性
-
步骤四:刷新配置
-
步骤五:触发数据库查询
-
步骤六:恢复正常 jdbc url
-
利用条件:
-
利用方法:
-
漏洞原理:
-
漏洞分析:
-
漏洞环境:
-
步骤一:托管 xml 文件
-
步骤二:托管恶意 ldap 服务及代码
-
步骤三:设置 logging.config 属性
-
步骤四:重启应用
-
利用条件:
-
利用方法:
-
漏洞原理:
-
漏洞分析:
-
漏洞环境:
-
步骤一:托管 groovy 文件
-
步骤二:设置 logging.config 属性
-
步骤三:重启应用
-
利用条件:
-
利用方法:
-
漏洞原理:
-
漏洞环境:
-
步骤一:托管 groovy 文件
-
步骤二:设置 spring.main.sources 属性
-
步骤三:重启应用
-
利用条件:
-
利用方法:
-
漏洞原理:
-
漏洞环境:
-
步骤一:托管 sql 文件
-
步骤二:设置 spring.datasource.data 属性
-
步骤三:重启应用
-
利用条件:
-
利用方法:
-
漏洞原理:
-
漏洞环境:
-
0x01:路由地址及接口调用详情泄漏
-
0x02:配置不当而暴露的路由
-
0x03:获取被星号脱敏的密码的明文 (方法一)
-
0x04:获取被星号脱敏的密码的明文 (方法二)
-
0x05:获取被星号脱敏的密码的明文 (方法三)
-
0x06:获取被星号脱敏的密码的明文 (方法四)
-
步骤一:找到想要获取的属性名
-
步骤二:jolokia 调用相关 Mbean 获取明文
-
利用条件:
-
利用方法:
-
步骤一:找到想要获取的属性名
-
步骤二:使用 nc 监听 HTTP 请求
-
步骤三:设置 eureka.client.serviceUrl.defaultZone 属性
-
步骤四:刷新配置
-
步骤五:解码属性值
-
利用条件:
-
利用方法:
-
步骤一:找到想要获取的属性名
-
步骤二:使用 nc 监听 HTTP 请求
-
步骤三:触发对外 http 请求
-
步骤四:刷新配置
-
利用条件:
-
利用方法:
-
步骤一:找到想要获取的属性名
-
步骤二:下载 jvm heap 信息
-
步骤三:使用 MAT 获得 jvm heap 中的密码明文
-
利用条件:
-
利用方法:
-
0x01:路由知识
-
0x02:版本知识
-
组件版本的相互依赖关系:
-
Spring Cloud 与 Spring Boot 版本之间的依赖关系:
-
Spring Cloud 小版本号的后缀及含义:
-
零:路由和版本
-
一:信息泄露
-
二:远程代码执行
原文始发于微信公众号(Ots安全):SpringBoot 相关漏洞学习资料,利用方法和技巧合集
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论